Flask接口签名sign原理与实例代码浅析
212
2022-08-31
利用python爬虫(part4)--requests模块之requests.get方法
学习笔记
文章目录
requests模块
requests常用方法
requests.get()
requests模块
关于requests模块的安装
进入cmd,输入以下代码,即可安装:
pip install requests
requests常用方法
requests.get()
作用
向网站发起请求,并获取响应对象。
语法
res = requests.get(url,headers=headers)#url :需要抓取的URL地址#headers : 请求头#timeout : 超时时间,超过时间会抛出异常
响应对象(res)属性
# 响应字符编码res.encoding#res.encoding = 'utf-8'# 字符串res.text#字节流res.content #HTTP响应码res.status_code #实际数据的URL地址res.url
举个例子1
我们访问测试网站(requestsimport randomfrom my_user_agent_list import user_agenturl = '= {'User-Agent':random.choice(user_agent)}#创建请求对象res = requests.get(url, headers = headers)#得到html字符串html = res.textprint(html)
备注:my_user_agent_list模块,是我自定义的模块。模块里放着一个列表user-agent, 列表里包含了各种User-Agent字符串。
控制台输出结果:
{ "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": " "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1", "X-Amzn-Trace-Id": "Root=1-5e867a3e-79e73bc2a78fb809260d2b4e" }, "origin": "183.164.105.16", "url": "则requests会根据网站的响应,猜测网站的编码。
①不指定编码
代码:
import requestsimport randomfrom my_user_agent_list import user_agenturl = '= {'User-Agent':random.choice(user_agent)}res = requests.get(url, headers = headers)print('响应编码:', res.encoding)
控制台输出结果:
响应编码: utf-8
②指定编码
代码:
import requestsimport randomfrom my_user_agent_list import user_agenturl = '= {'User-Agent':random.choice(user_agent)}res = requests.get(url, headers = headers)res.encoding = 'gbk'print('响应编码:', res.encoding)
控制台输出结果:
响应编码: gbk
举个例子3(抓取北极兔图片)
对于非结构化数据(比如:音频,视频,图片),采用二进制的形式抓取。
我们在百度图片里搜索到要抓取的北极兔图片,并检查元素,获取图片地址:
代码:
import requestsimport randomfrom my_user_agent_list import user_agenturl = '= {'User-Agent':random.choice(user_agent)}html = requests.get(url, headers = headers).content#将图片保存到本地with open('test/北极兔.jpg', 'wb') as f: f.write(html)
OK!
举个例子4(查看HTTP响应码和实际数据URL地址)
代码:
import requestsimport randomfrom my_user_agent_list import user_agenturl = '= {'User-Agent':random.choice(user_agent)}res = requests.get(url, headers = headers)print('HTTP响应码:', res.status_code)print('URL地址:', res.url)
控制台输出结果:
HTTP响应码: 200URL地址: 明天再写requests模块的其他方法。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~