爬虫常用包(二)Requests

其实Requests应该写在BeautifulSoup之前,毕竟要先得到url访问才能解析html文件,BeautifulSoup相关请参考爬虫常用包(一)BeautifulSoup

Requests的作用

爬虫的基本逻辑,就是自动化的下载我们目标网址上的信息。通过使用代码来免除大量重复的人工操作。
爬虫的基本流程为:发起请求——获取响应。——解析内容——保存数据
(具体的爬虫流程与实例将在后续更新)
Requests的作用就是“发起请求——获取响应”。简单解释就是模拟我们打开某个目标页面(发送请求)并获取其html文件(获得相应)的过程。
Requests不仅可以get也可以post,鉴于爬虫主要需要的操作还是get,后续着重介绍get的相关内容。

Requests中函数、参数的基本介绍

表中只是基础使用下的一些重要函数与参数,可以在后续的具体使用中不断完善

函数名作用
requests.request()构造请求,后续操作的基础
requests.get()获取目标网页的数据
requests.post()向目标网页提交数据
requests.delete()请求目标网页删除指定信息
requests.patch()请求目标网页修改局部信息
requests.head()获取目标网页头部信息
参数含义
url目标网址
headers请求头
cookies用户的身份信息
proxiesIP代理
timeout超时时间

Requests的使用

1.获得请求

import requests
r = requests.get('https://bj.58.com/jianzhianbao/52154103509944x.shtml?iuType=p_1&PGTID=0d300000-0000-1c64-7879-d54c421dd6e1&ClickID=3')
# <Response [200]>

上述代码只是使用最基本的get方式来获取请求,得到的结果为“<Response [200]>”即请求成功。但因为现在很多网站都有反爬机制,因此我们的程序也需要不断的伪装自己,使自己尽量不像一个自动化的机器人,cookies等参数的用途就是对我们的爬虫进行伪装。

我们还可以通过使用带参数的请求来精准查询目标数据

url = 'https://bj.58.com/jianzhianbao/52154103509944x.shtml?iuType=p_1&PGTID=0d300000-0000-1c64-7879-d54c421dd6e1&ClickID=3'
data = {'name':'兼职招聘',}
r =requests.get(url,params=data)
print(r.text)

由于需要输入验证码,这里是得不到具体的结果的

2.添加请求头

当目标网页需要登录时,如果只使用简单的get是无法得到目标网页信息的,这时候就需要添加一个header。

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'}
url = 'https://bj.58.com/jianzhianbao/52154103509944x.shtml?iuType=p_1&PGTID=0d300000-0000-1c64-7879-d54c421dd6e1&ClickID=3'
data = {'name':'兼职招聘',}
r =requests.get(url,headers=headers,params=data)
print(r.text)

3.添加cookies

cookies可以理解为是一种身份认证信息,当爬虫目标网页需要登录时,我们可以通过cookies伪装。cookie是一个动态的信息,具有时效性。其获取方式可以通过查看浏览器的源码,从中找到此次登陆可以使用的cookie。

headers = {
	'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36',
	'Cookie': 'sessionid=feli4ngf23njptxxb0qma5tl04x8wc43; csrftoken=O9YSm7TMaIb2ZdqEnENJY1GBXj3xUE26',
	}
r =requests.get(url,headers=headers)

4.添加超时异常提醒

通过timeout可以设置超时时间,如果在规定时间内得不到网页反馈,则终止连接判定为异常情况。

response = requests.get(url, timeout=5)
# 设定如果超过5秒未得到响应则为异常

另外,Requests中还有其他更高阶的使用方式,例如添加IP代理、进行证书验证、分流下载数据等等,这里只介绍了一些基本的、最重要的操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值