其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤
模拟请求网页。模拟浏览器,打开目标网站。
获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。
保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。
那么我们该如何使用 Python 来编写自己的爬虫程序呢,在这里我要重点介绍一个 Python 库:Requests。
Requests 使用
Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。
模拟发送 HTTP 请求
发送 GET 请求
当我们用浏览器打开豆瓣首页时,其实发送的最原始的请求就是 GET 请求
import requests
res = requests.get('http://www.douban.com')
print(res)
print(type(res))
>>>
<Response [200]>
<class 'requests.models.Response'>
1、抓取网页、分析请求
2、解析网页、寻找数据
3、储存数据、多页处理
翻页有规律:
很多网址在第一页时并没有变化,多翻下一页后规律就出来,比如 豆瓣第一页 和 豆瓣第三页
发现start为40,limit=20,所以猜测start=0就是第一页,每页显示20条数据,对于第三页显示的参数可以一个个删除验证,可以减去不必要的参数, 但是删除前一定要做好数据的对比
(1) 文本框输入后产生一个请求,如常见的登录、注册页面
Referer:表示当前请求的来源
Request URL:表示实际请求地址
翻页后URL不变,该如何寻找请求?
如: http://www.zkh360.com/zkh_catalog/3.html
通过对比可以发现网站是通过pageIndex参数控制翻页的,?表示连接
接下来用抓包工具分析下 ,从第四页开始看URL就知道了,但是前面几面需要查看请求的参数,这里偏多,就切换到【Inspectors--Webforms】选项,看的比较直观
类似的网站还有 今日头条 ,有兴趣的朋友可以去研究下
(可通过获取max_behot_time的值而改变as和cp)
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理python2
爬虫:从网页上采取数据
爬虫模块:urllib,urllib2,re,bs4,requests,scrapy,xlml
1.urllib
2.request
3.bs4
4.正则re
5种数据类型
(1)数字Number
(2)字符串String
(3)列表List[] 中文在可迭代对象就是unicode对象
(4)元组Tuple()
(5)字典Set{}
爬虫思路:
1.静态 urlopen打开网页------获取源码read
2.requests(模块) get/post请求----获取源码 text()方法 content()方法(建议)
3.bs4 能够解析HTML和XML
-- coding:utf-8 –
from bs4 import BeautifulSoup
1
html=“
2018.1.8 14:03
”
soup=BeautifulSoup(html,‘html.parser’) #解析网页
print soup.div
2从文件中读取
html=’’
soup=BeautifulSoup(open(‘index.html’),‘html.parser’)
print soup.prettify()
4.获取所需信息