在python中有许多支持发送的库。比如:urlib、requests、selenium、aiohttp……等。但我们当前最常用的还是requests库,这个库是基于urllib写的,语法非常简单,操作起来十分方便。下面我们就直接进入主题,简单介绍一下如何使用requests库。
使用简单易操作的pip的安装方式就可以了:
pip install requests
下面先列举一个最简单的get请求:
import requests response = requests.get(url='http://zx529.xyz') # 最基本的GET请求 print(response.text) #打印返回的html文档
通过上面这段代码我们就可以初步获得想要请求的网站的网页源代码了。但是大多数情况都会存在着一些反爬手段,这时候我们就需要对requests中的参数进行一些添加,比如Headers、cookies、refer……等。对于大部分网站,通过添加所需要的请求参数就能够对网站发送请求,并得到期望的响应。对于常见的请求,使用requests都可以得到解决,比如:
requests.get('https://github.com/timeline.json') #GET请求 requests.post('http://httpbin.org/post') #POST请求 requests.put('http://httpbin.org/put') #PUT请求 requests.delete('http://httpbin.org/delete') #DELETE请求 requests.head('http://httpbin.org/get') #HEAD请求 requests.options('http://httpbin.org/get') #OPTIONS请求
而请求类型我们也可以在控制面板中进行查看,按下 f12 或者鼠标右击检查,随便打开一个数据包就可以查看该数据包的请求方式,如果没有数据包的话刷新一下页面就可以了。
这就是最简单的发送get请求,也就是当要请求的网站没有任何的反扒手段时,只需要在get方法内添加url地址就可以了。但是许多网站存在着一些简单的反爬,就需要添加一些相应的参数。下面列举一些请求的参数:
method :请求方法get posturl:请求网址 params: (可选的)查询参数 headers:(可选的)字典请求头 cookies:(可选的)字典.cookiejar对象,用户身份信息proxies: (可选的) ip代理 data:(可选的)字典.列表.元组.bytespost请求时会用到json:(可选的)字典提交参数 verify:(可选的)是否验证证书,ca证书 timeout:(可选的)设置响应时间,一旦超过,程序会报错 a7low_redirects:(可选的)是否允许重定向,布尔类型数据
以上的参数按照出现的频率排序,当我们对网站进行请求时如果不能够正确出现预期的响应时就可以添加这些参数,最常用的是Headers、refer、cookies。一般情况下如果不用添加cookies就可以的话尽量不要添加cookies,因为cookies可能包含着我们的个人数据。
我总结一下我个人进行爬虫的一些准备。
下面我们对飞卢小说网站的内容进行获取,网页地址:
import requests url='https://b.faloo.com/y_0_0_0_0_3_15_1.html' response=requests.get(url).text print(response)
通过控制台打印的内容,此时我们可以复制一段网页中的内容,然后到控制台中按下 Ctrl+F 进行查找,比如我复制了一本小说的名字,在控制台可以获取到,那么就说明我们获取到了期望的内容。
可以获取到相关的内容,说明数据已经被我们获取到了,下一次会给大家整理数据筛选相关的知识。关于requests库的相关知识大家可以参考相关文档:
中文文档: http://docs.python-requests.org/zh CN/latest/index.html github地址: https://github.com/requests/requests