今天学习的是requests 和ua伪装
一、requests
Requests 库是 Python 中发起 HTTP 请求的库
第一步 安装requests 库
进入到python安装目录下的Scripts文件中,输入pip install requests就好了
安装路径可以右键“复制路径/查看路径中查看”,再cmd里安装就行
第二步 如何使用
用import去引用,使用的话 用requests 去发送get请求,后面跟上url
import requests
res = requests.get('https://www.baidu.com/')
print(res)
print(res.status_code) #返回http状态码
直接输出requests会返回一个响应,这个响应可以判断是否成功,常见的状态码有这几种:
1xx 信息,表示临时响应并需要请求者继续执行操作
2xx 成功,操作被成功接收并处理
3xx 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向
4xx 客户端错误,请求包含语法错误或无法完成请求
5xx 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错
我们可以根据requests返回的状态码做一个范围判断:
import requests
res = requests.get('https://www.baidu.com/')
print(res)
print(res.status_code) #返回http状态码
if res.status_code >= 200 and res.status_code < 400:
print('访问成功')
elif res.status_code >= 400 and res.status_code < 500:
print('访问失败')
elif res.status_code >= 500:
print('服务器错误')
也可以通过requests的ok属性去判断访问是否成功。成功为true,失败为false
if res.ok:
print('成功')
else:
print('失败')
二、UA伪装
什么是ua伪装
让爬虫对应的请求载体身份标识伪装城某一款浏览器。
具体操作:将合适的User-Agent封装到一个字典中
请求标头中有个User-Agent,表示请求载体的身份标识
例如某些浏览器不希望程序访问,在发送requests请求的时候会返回418 我是一个茶壶 这个时候就需要包装一个User-Agent到请求头,有些网站可能会检查请求之间的时间间隔,如果请求过于频繁,可能会被认为是爬虫。在这种情况下,可以在你的请求之间添加一些延迟。
如何使用ua伪装
例如:豆瓣的电影榜单:
import requests
res = requests.get('https://m.douban.com/movie/')
print('res.ok:', res.ok)#res.ok: False
print(res)
print(res.status_code) #返回http状态码
if res.status_code >= 200 and res.status_code < 400:
print('访问成功')
elif res.status_code >= 400 and res.status_code < 500:
print('访问失败')
elif res.status_code >= 500:
print('服务器错误')
if res.ok:
print('成功')
print(res.text)
else:
print('失败')
这个时候我们可以封装一个User-Agent到请求头,伪装成正常浏览器再去访问一次。
将合适的User-Agent封装到一个字典中,再传入至请求头里面去。
import requests
rq_head = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
}
res = requests.get('https://m.douban.com/movie/',headers=rq_head)
print('res.ok:', res.ok)#res.ok: False
print(res)