python爬虫实验总结_Python爬虫总结
经验:
1、利用chrome的network,通过翻页操作,快速定位到获取数据的url
2、利用Postman,可以快速生成爬虫的代码
注意点:
1、导出csv时候,中文乱码
2、抓取时间时候,格式转化
代码:
1、API类
如果网站是通过API直接获取的json数据的话,那么不用分析页面dom,比较简单
result1 = []
url = "https://ecp.sgcc.com.cn/ecp2.0/ecpwcmcore//index/noteList"
headers = {'Content-Type': "application/json", 'cache-control': "no-cache"}
for page in range(1, 11):
payload = "{\"firstPageMenuId\": \"2018032700291334\", \"index\": " + str(page) + ", \"key\": \"\", \"orgId\": \"\", \"purOrgCode\": \"\", \"purOrgStatus\": \"\", \"purType\": \"\", \"size\": 20}"
response = requests.request("POST", url, data=payload, headers=headers)
mydicts = json.loads(response.text)
for mydict in mydicts["resultValue"]["noteList"]:
publishTime = datetime.strptime(mydict["noticePublishTime"], '%Y-%m-%d')
link = "https://ecp.sgcc.com.cn/ecp2.0/portal/#/doc/doc-spec/" + str(mydict["firstPageDocId"]) + "_2018032700291334"
obj = {'title': mydict["title"], 'publishTime': publishTime.strftime("%Y-%m-%d"), 'link': link}
result1.append(obj)
print(result1)
2、URL返回网页类
有的网站是在内部嵌套了个iframe,或者异步加载数据页面,要找到真正的链接,不能单纯的用url地址
result2 = []
for page in range(1, 11):
url = "http://bulletin.sntba.com/xxfbcmses/search/bulletin.html?dates=300&categoryId=88&page=" + str(page) + "&showStatus=1"
html = urllib.urlopen(url)
bsObj = BeautifulSoup(html, "html.parser")
for tr in bsObj.find("table", {"class": "table_text"}).findAll("tr"):
if len(tr.findAll('td')) > 0:#过滤掉title
title = tr.findAll('td')[0].get_text().strip()
publishTime = datetime.strptime(tr.findAll('td')[4].get_text().strip(), '%Y-%m-%d')
link = tr.findAll('td')[0].find('a')['href'][20:-2]
obj = {'title': title, 'publishTime': publishTime.strftime("%Y-%m-%d"), 'link': link}
result2.append(obj)
print(result2)
3、导出csv
reload(sys)
sys.setdefaultencoding('utf-8')
csvFile = open('result.csv', 'wb')
#‘r’:只读(缺省。如果文件不存在,则抛出错误)
#‘w’:只写(如果文件不存在,则自动创建文件)
#‘a’:附加到文件末尾(如果文件不存在,则自动创建文件)
#‘r+’:读写(如果文件不存在,则抛出错误)
csvWriter = unicodecsv.writer(csvFile, encoding="utf-8-sig")
result = []
#中间省略爬虫代码
for o in result:
title = o['title']
publishTime = o['publishTime']
link = o['link']
csvWriter.writerow([title, publishTime, link])
csvFile.close()
4、引入
#coding=utf-8
import urllib
import requests
import json
import time #为了更像真人浏览网页,通过这个设置每几秒爬一次
import sys
import unicodecsv
from datetime import datetime
from bs4 import BeautifulSoup #美化抓取的页面
其他:
需要验证码的网站,还在研究中~~~
python爬虫实验总结_Python爬虫总结相关推荐
- python爬虫实验报告_python爬虫实验
原博文 2013-06-28 13:30 − 那天在新浪微博上看到北北出的题目,由于最近也在做类似的爬虫研究,所以就有了这个实验. 后来在QQ上和北北说了下,要求是啥都抓,就抓乌云的... 然后就开始 ...
- python网络爬虫实验报告_Python网络爬虫实例讲解
聊一聊Python与网络爬虫. 1.爬虫的定义 爬虫:自动抓取互联网数据的程序. 2.爬虫的主要框架 爬虫程序的主要框架如上图所示,爬虫调度端通过URL管理器获取待爬取的URL链接,若URL管理器中存 ...
- python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...
Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...
- python爬虫自学路线_python 爬虫学习路线:从入门到进阶
大家好,我是凉拌 今天给大家详解一下我的爬虫学习路线. 对于小白来说,爬虫可能是一件非常复杂.技术门槛很高的事情.比如有的人则认为先要掌握网页的知识,遂开始 HTML\CSS,结果入了前端的坑,浪费了 ...
- python爬虫面试问题_Python爬虫面试总结
## Python爬虫面试总结 1. 写一个邮箱地址的正则表达式? [A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 2. 谈 ...
- python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)
本篇主页内容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,贪婪与非贪婪模式 Python爬虫教程-19-数据提取-正则表达式(re) 正则表达式 ...
- python爬虫知识大全_Python爬虫入门有哪些基础知识点
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
- python爬虫的用途_python爬虫用途
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 专业点来说就是应用多台机器同时实现爬虫任务,这多台机器上的爬虫,就是称作分布式爬 ...
- python爬取网页内容_Python爬虫原理解析
笔者公众号:技术杂学铺 笔者网站:mwhitelab.com 本文将从何为爬虫.网页结构.python代码实现等方面逐步解析网络爬虫. 1. 何为爬虫 如今互联网上存储着大量的信息. 作为普通网民,我 ...
- python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...
最新文章
- python 选择多个文件夹_如何同时选择多个文件?
- mysql 优化之 is null ,is not null 索引使用测试
- 中国电信陆良军:2020年5G手机终端规模达1.7亿
- 技术人生:希望有生之年开发一个“自己的解释语言”
- Linux文件系统的创建与管理(上)
- AspNetPager分页控件报错“对象不支持此属性或方法”
- ubuntu 下系统监视器_Ubuntu系统监控工具
- 淘宝前员工开发雨滴阅读,欲打造国产Instapaper
- js 复制div文本
- 【技术贴】Windows图片和传真查看器打开图片慢,正在生成预览的解决办法!
- 密码疑云 (2)——RSA加密机制需要的数学知识
- java web课程设计之图书管理系统
- c语言isfinite用法,C# Double.IsFinite()用法及代码示例
- uni-app 倒计时组件
- Linux平台PPT转图片(Python)
- 6-1 Person类
- CentOS之vim操作
- Linux-Ubuntu下安装python和卸载
- 测量小助手——典型用户及使用场景
- 阿里云OCR图片识别
热门文章
- linux wrf 系统_WRF在Linux环境下的安装
- 鸿蒙试炼多少可以单挑,知己知彼《灭神》单挑虚无之地大BOSS
- 刚装新系统环境mscorsvw.exe进程占用CPU资料50%以上的原因
- java网络文章博客抓取系统_java 后端博客系统文章系统——No5
- 一场别开生面的黑客面基大会
- 如何发个 微信九宫格 朋友圈?
- git 操作报错(fatal: ‘xxx’ does not appear to be a git repository)
- 天牛须和贪心算法_BAS_optimization 天牛须算法的简单编写 - 下载 - 搜珍网
- DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection翻译
- linux中运行屏幕分辨率,Linux设置显示器分辨率与刷新率