脚本宝典收集整理的这篇文章主要介绍了爬虫---01.requests模块,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
requests是基于网络请求的模块
作用和流程:模拟浏览器发起请求
1.指定url
url = "https://..."
2.发起请求
response = requests.get(url=url, headers=headers)
3.获取响应数据(爬取到的页面源码数据)
page_text = response.text
4.持久化存储
with open('./xx.html', 'w', encoding='utf-8') as fp:
fp.write(page_text)
5.雪薇进阶点就直接解析放入excel或者数据库
url携带参数和参数动态化
1.将携带的动态参数以键值对的影视封装到一个字典中
2.将该字典作用到get方法的params参数中即可。
3.需要将原始url中携带的参数删除
keyWord = input(">>>")
params = {"query": keyWord}
url = ""
response = requests.get(url, params=params)
# 注意 在出现乱码的情况时,需要修改编码格式
response.encoding = "utf-8"
page_text = response.text
# 注意 params字典值为空,要添加“”空字符,数字要写成字符串
# 实例 用json是因为数据是对象格式的
url = "https://movie.douban.com/j/chart/top_list"
params = {"type": "5",
"interval_id": "100:90",
"action": '',
"start": "0",
"limit": "20",
}
headers = {
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
}
response = requests.get(url=url, params=params, headers=headers)
print(response.json())
User-Agent
动态加载数据的捕获
通过requests模块进行数据爬取无法每次都实现可见即可得
有些数据是通过非浏览器地址栏中的url请求到的数据 而是其他请求请求到的数据,这些通过其他请求请求到的数据就是动态加载的数据。
通过抓包工具进行局部搜索,检测网页中是否有动态加载数据 在页面打开抓包工具 捕获到地址栏对应数据包 在该数据包的response选项卡搜索数据 如果没有就是动态加载的。
捕获动态加载数据 定位到动态加载数据对应的数据包,从该数据包中就可以提取出数据 - 请求url - 请求方式 - 请求携带的参数 - 看到响应数据
基于抓包工具进行全局搜索不一定可以每次都能定位到动态加载数据对应的数据包 如果动态加载的数据是经过加密的密文数据,就抓取不到
# 在录入关键字的本文框中录入搜索按钮 发起ajax请求
# 当前页面刷新出来的位置信息一定是通过ajax请求请求到的数据
# 基于抓包工具定位到该ajax请求的请求包 从该数据包中捕获到
# 1.请求的UrL
# 2.请求方式
# 3.请求携带的参数
# 4.看到的相应数据
# post请求方式 注意data参数是post方法中处理参数动态化的参数
# 这里还有两个概念 抓xhr包和要用表单数据打包data
response = requests.post(url=url, headers=headers, data=data)
page_text = response.json()
补充资料:User-Agent汇总
以上是脚本宝典为你收集整理的爬虫---01.requests模块全部内容,希望文章能够帮你解决爬虫---01.requests模块所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。