python 网络爬虫requests模块
一、requests模块
requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。
1.1 模块介绍及请求过程
requests模块模拟浏览器发送请求
请求流程:指定url --> 发起请求 --> 获取响应对象中存储的数据 --> 持久化存储
1.2 爬取百度首页
#!/usr/bin/env python # -*- coding:utf-8-*-import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' } url = 'https://www.baidu.com/'response = requests.get(url=url) response.encoding = 'utf-8' # 修改字符编码 page_text = response.text # 获取的类型为字符型<class 'str'> with open('./baidu.html', mode='w', encoding='utf-8') as f:f.write(page_text)# page_text = response.content # 返回二进制数据类型 <class 'bytes'> # response.status_code # 获取响应状态码 # response.headers['Content-Type'] == 'text/json' # 类型是 'text/json' 则可以使用response.json方法 # response.json # 如果响应头中存储了json数据,该方法可以返回json数据
1.3 爬取百度指定词条搜索后的页面数据
#!/usr/bin/env python # -*- coding:utf-8-*- import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' } url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&' kw = input('请输入要搜索的内容:') param = {'wd': kw} response = requests.get(url=url, params=param, headers=headers)page_text = response.content fileName = kw+'.html' with open(fileName, 'wb') as fp:fp.write(page_text)print(fileName+'爬取成功。')
1.4 获取百度翻译的翻译结果使用post方法
页面使用的ajax的请求方式,通过浏览器抓包得到请求的地址和提交From表单的内容。
#!/usr/bin/env python # -*- coding:utf-8-*-import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' } url = 'https://fanyi.baidu.com/sug'kw = input('请输入要翻译的内容:') data = {'kw': kw } response = requests.post(url=url, data=data, headers=headers) dic = response.json() print(dic['data'])-----------------------------------执行结果-------------------------------------- 请输入要翻译的内容:美女 [{'k': '美女', 'v': '[měi nǚ] beauty; belle; beautiful woman; femme fat'}, {'k': '美女与野兽', 'v': '名 Beauty and the Beast;'}, {'k': '美女蛇', 'v': 'merino;'}] --------------------------------------------------------------------------------
1.5 爬取豆瓣电影排名电影
#!/usr/bin/env python # -*- coding:utf-8-*-import requests headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36' }url = 'https://movie.douban.com/j/chart/top_list'param = {'type': '5','interval_id': '100:90','action': '','start': '0','limit': '20' }json_data = requests.get(url=url, headers=headers, params=param).json()print(json_data)
转载于:https://www.cnblogs.com/cyleon/p/10577791.html
python 网络爬虫requests模块相关推荐
- python网络爬虫应用_Python网络爬虫(requests模块应用1)
一.什么是requests模块? requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位. 二.为什 ...
- 2021-11-03大数据学习日志——数据埋点+网络爬虫——requests 模块
requests 是用 python 语言编写的一个开源的HTTP库,可以通过 requests 库编写 python 代码发送网络请求,其简单易用,是编写爬虫程序时必知必会的一个模块. reques ...
- Python网络爬虫requests、bs4爬取空姐图片,福利哦
Scrapy框架很好,也提供了很多扩展点,可以自己编写中间件处理Scrapy的Request和Response.但是可定制化或者可掌控性来说,还是自己写的爬虫更加强一些. 接下来,我们来看一下使用Py ...
- Python网络爬虫-xpath模块
一.正解解析 单字符:. : 除换行以外所有字符[] :[aoe] [a-w] 匹配集合中任意一个字符\d :数字 [0-9]\D : 非数字\w :数字.字母.下划线.中文\W : 非\w\s :所 ...
- Python 网络爬虫笔记1 -- Requests库
Python 网络爬虫笔记1 – Requests库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyt ...
- python网络爬虫教程(四):强大便捷的请求库requests详解与编程实战
上一章中,我们了解了urllib的基本用法,详情可浏览如下链接python网络爬虫教程(三):详解urllib库,但其中确实有不方便的地方,为此,我们可以使用更方便更简洁的HTTP请求库request ...
- Python爬虫---requests模块的基本使用
Python爬虫-requests模块的基本使用 基础 什么是爬虫? 就是通过编写程序模拟浏览器上网,然后让其去互联网上爬取数据的过程. 爬虫的分类 通用爬虫 抓取互联网中的一整张页面数据 聚焦爬虫 ...
- Python 网络爬虫笔记2 -- Requests库实战
Python 网络爬虫笔记2 – Requests库实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:P ...
- python网络爬虫系列教程——python中requests库应用全解
全栈工程师开发手册 (作者:栾鹏) python教程全解 python中requests库的基础应用,网页数据挖掘的常用库之一.也就是说最主要的功能是从网页抓取数据. 使用前需要先联网安装reques ...
最新文章
- WebLogic集群案例分析
- unity3d优化总结篇
- emlog过滤html,Emlog 搜索优化 标题 + 全文搜索
- 【Kafka】Kafka Record for partition topic at offset xx is invalid, cause: Record corrupt
- .net 发送html邮件,c#利用system.net发送html格式邮件
- Android代码优化,主界面卡住
- mysql 8.0 ~ 安装
- cad二次开发程序的绿色安装
- PDF软件有这么好用的打印机,你知道吗?
- 程序设计c语言题解析,C语言程序设计试题及答案解析
- Centos下安装FastDFS
- 读《创业36条军规》(六)凡事只能靠自己
- [论文阅读]PIXER: an automated particle-selection method based on segmentation using deep neural network
- PowerVR 6系列架构分析
- Android 11.0 蓝牙的启用和禁用
- web远程桌面客户端_您所说的内容:桌面与基于Web的电子邮件客户端
- 智能制造的实现,少不了APS排产系统
- C# 网络编程之获取本机名、ip地址、域名、物理位置
- Seaborn系列| 绘制相关性热图(仅显示下三角相关性)
- Android 9/10 Launcher3 适配出现的问题修改
热门文章
- 中秋福利大放送!教你既可朝九晚五,又可诗和远方!
- 浏览器渲染流水线解析
- java中的strictfp的作用
- linux 删除文件反选
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...
- Sedawk笔记之awk篇:快速了解Awk(三)
- The Code Commandments: Best Practices for OCCoding
- Ubuntu使用notify-send 与 crontab 实现定时提醒
- svn钩子程序上传文件中文文件导致报错的处理办法
- FastReport人民币大写转换