python爬虫之requests模块
2022/2/20 1:13:11
本文主要是介绍python爬虫之requests模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
requests模块使用
requests介绍
python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高,
作用是模拟浏览器发请求。
requests模块的编码流程
- 指定URL
- 发送请求
- 获取相应数据
- 持久化存储
环境安装
pip install requests
实战编码
需求:爬取搜狗首页的页面数据
import requests # 一、指定url url = 'https://www.sogou.com/' # 二、发送请求 # 三、用get请求返回一个响应对象 response = requests.get(url=url) # 获取响应数据 page_text = response.text # 四、持久化存储 with open('sougou.html', 'w', encoding='utf-8') as fp: fp.write(page_text)
实战巩固
1、爬取搜狗指定词条对应的搜索结果页面
分析
请求方式为:GET方式
请求url为:https://www.sogou.com/web
响应头返回的 Content-Type 类型为: text/html
携带的参数:其中 query
为我们搜索的内容
代码
import requests # UA伪装:将对应的 User-Agent 封装到一个字典(请求头)中 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.50' } url = 'https://www.sogou.com/web' # 处理url携带的参数:封装到字典中 kw = input("输入关键词\n") param = { 'query': kw } # 对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数 response = requests.get(url=url, params=param, headers=headers) page_text = response.text fileName = kw+'.html' # 持久化存储 with open(fileName, 'w', encoding='utf-8') as fp: fp.write(page_text)
2、破解百度翻译
分析
请求方式为:POST方式
请求url为:https://fanyi.baidu.com/sug
响应头返回的 Content-Type 类型为: application/json
携带的参数:其中 kw
为我们搜索的单词
代码
import json import requests # UA伪装:将对应的 User-Agent 封装到一个字典中 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.50' } url = 'https://fanyi.baidu.com/sug' kw = input('翻译输入:\n') data = { 'kw': kw } response = requests.post(url=url, data=data, headers=headers) # 获取响应数据:json方法返回的是一个json对象(如果确实响应数据类型为json类型才能使用:Content-Type: application/json) result = response.json() # 输出翻译结果 print('翻译结果:') for word in result['data']: print(word['k'], word['v']) # 持久化存储 fp = open('{}.json'.format(kw), 'w', encoding='utf-8') json.dump(result, fp=fp, ensure_ascii=False)
3、爬取豆瓣电影分类排行榜
分析
请求方式为:GET方式
请求url为:https://movie.douban.com/j/chart/top_list
响应头返回的 Content-Type 类型为: application/json
携带的参数:
type
:分类对应的编号
start
: 开始的排名(排名从0开始)
limit
: 排名的个数
代码
import json from unittest import result import requests url = 'https://movie.douban.com/j/chart/top_list' # UA伪装:将对应的 User-Agent 封装到一个字典中 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.50' } param = { 'type': '24', 'interval_id': '100:90', 'action': '', 'start': '0', 'limit': '100' } response = requests.get(url=url, params=param, headers=headers) result = response.json() # 输出结果 for moive in result: print('排名:{0},电影名:{1}'.format(moive['rank'], moive['title'])) # 持久化存储 fp = open('douban.json', 'w', encoding='utf-8') json.dump(result, fp=fp, ensure_ascii=False)
json格式化工具
作业:肯德基餐厅信息爬取
需求:在肯德基餐厅信息查询网站爬取餐厅信息
输入:城市
输出:餐厅名称、餐厅地址、详情
代码:
import json import requests from fake_useragent import UserAgent url = 'https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword' keyword = input('请输入要查询的城市:') # 请求携带参数 data = { 'cname': '', 'pid': '', 'keyword': keyword, 'pageIndex': '1', 'pageSize': 10000 } # 随机UA伪装 headers = { 'User-Agent': UserAgent().random } # 获取响应数据 response = requests.post(url=url, headers=headers, data=data) reture_data = response.text # 持久化存储 fp1 = open('肯德基餐厅信息.json', 'w', encoding='utf-8') json.dump(obj=reture_data, fp=fp1, ensure_ascii=False) fp1.close() # 数据可视化 result = json.loads(reture_data) fp2 = open('肯德基餐厅表.csv', 'w', encoding='utf-8') fp2.write('编号,餐厅名称,餐厅地址\n') for pos in result['Table1']: fp2.write('{0},{1},{2}\n'.format( pos['rownum'], pos['storeName'], pos['addressDetail'])) fp2.close() print('总共有{0}个结果,数据保存成功'.format(result['Table'][0]['rowcount']))
版权属于:瞌学家 所有,转载请注明出处
本文链接:https://www.songonline.top/archives/137/
友情提示: 如果文章部分链接出现404,请留言或者联系博主修复。
这篇关于python爬虫之requests模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识