问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python3如何利用requests模块实现爬取页面内容的实例详解

发布网友 发布时间:2023-07-28 19:04

我来回答

1个回答

热心网友 时间:2024-02-17 22:07


本篇文章主要介绍了python3使用requests模块爬取页面内容的实战演练,具有一定的参考价值,有兴趣的可以了解一下
1.安装pip
我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装requests模块使用pip,所以我这里第一步先安装pip。


$ sudo apt install python-pip安装成功,查看PIP版本:


$ pip -V2.安装requests模块
这里我是通过pip方式进行安装:


$ pip install requests
运行import requests,如果没提示错误,那说明已经安装成功了!
检验是否安装成功
3.安装beautifulsoup4
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找、修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。


$ sudo apt-get install python3-bs4注:这里我使用的是python3的安装方式,如果你用的是python2,可以使用下面命令安装。


$ sudo pip install beautifulsoup44.requests模块浅析
1)发送请求
首先当然是要导入 Requests 模块:


>>> import requests然后,获取目标抓取网页。这里我以下为例:


>>> r = requests.get('http://www.gxlcms.com/article/124421.htm')这里返回一个名为 r 的响应对象。我们可以从这个对象中获取所有我们想要的信息。这里的get是http的响应方法,所以举一反三你也可以将其替换为put、delete、post、head。
2)传递URL参数
有时我们想为 URL 的查询字符串传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如, cnblogs.com/get?key=val。 Requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数。
举例来说,当我们google搜索“python爬虫”关键词时,newwindow(新窗口打开)、q及oq(搜索关键词)等参数可以手工组成URL ,那么你可以使用如下代码:


>>> payload = {'newwindow': '1', 'q': 'python爬虫', 'oq': 'python爬虫'}
>>> r = requests.get("https://www.google.com/search", params=payload)3)响应内容
通过r.text或r.content来获取页面响应内容。


>>> import requests
>>> r = requests.get('https://github.com/timeline.json')
>>> r.textRequests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。这里补充一点r.text和r.content二者的区别,简单说:
resp.text返回的是Unicode型的数据;
resp.content返回的是bytes型也就是二进制的数据;
所以如果你想取文本,可以通过r.text,如果想取图片,文件,则可以通过r.content。
4)获取网页编码


>>> r = requests.get('http://www.cnblogs.com/')
>>> r.encoding
'utf-8'5)获取响应状态码
我们可以检测响应状态码:


>>> r = requests.get('http://www.cnblogs.com/')
>>> r.status_code
2005.案例演示
最近公司刚引入了一款OA系统,这里我以其官方说明文档页面为例,并且只抓取页面中文章标题和内容等有用信息。
演示环境
操作系统:linuxmint
python版本:python 3.5.2
使用模块:requests、beautifulsoup4
代码如下:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
_author_ = 'GavinHsueh'
import requests
import bs4
#要抓取的目标页码地址
url = 'http://www.ran.org/book/ran/about-ran-4.html'
#抓取页码内容,返回响应对象
response = requests.get(url)
#查看响应状态码
status_code = response.status_code
#使用BeautifulSoup解析代码,并锁定页码指定标签内容
content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml")
element = content.find_all(id='book')
print(status_code)
print(element)程序运行返回爬去结果:
抓取成功
关于爬去结果乱码问题
其实起初我是直接用的系统默认自带的python2操作的,但在抓取返回内容的编码乱码问题上折腾了老半天,google了多种解决方案都无效。在被python2“整疯“之后,只好老老实实用python3了。对于python2的爬取页面内容乱码问题,欢迎各位前辈们分享经验,以帮助我等后生少走弯路。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在液压原理图中各种符号的表示意义是什么? 脚臭怎么办,一脱鞋,那味道我自己都受不了? ...经电加热后表面会形成一层黑色物质,请问是什么东西?用什么化学... 宿舍老是经常出现蚂蚁,放久的书本打开全是蚂蚁,或是布柜里放久的衣服... 为什么寝室地板上会有蚂蚁? 怎么计算产值excel 青春不再伤感经典句子(《青春伤感经典短句子》) 致我们失去的青春简短说说(怀念过去的经典句子) 分享回忆过去致青春的语录集锦(回忆的句子时光感言简短) 女生为什么总想摸我的脸 水煮荷包蛋秘方 什么软件可以修改PDF文件 女主角开始被男主角包养后又相爱在一起的小说 ...都市言情小说里女主角叫夕颜 好像前面是讲她被包养了的 5600g显示模糊 技嘉g41主板集成显卡1080p显示器模糊 爱心人寿的年金险哪款比较好?值不值得买? 梦见妊娠纹是什么意思 宁波象山大目湾石榴物业是不是倒闭了 石榴物业服务集团有限公司扬州分公司怎么样? 永恒之塔电脑推荐配置 冬天的空调怎么用呢开关?谁能告诉我 年夜饭说说短句 为什么用QQ截图的,一摇手机,出现的是开关机键?怎么弄? qq截图为何出现关机故障 照片卡点怎么做 好累。想放弃了 追女生如何破解女孩的矜持? 相亲之后,对方态度不明 求高手破解 怎样处理洋葱,可以不流泪? 如何使用Python爬虫来进行JS加载数据网页的爬取 三只猴子跟人走 oracle如何检视当前有哪些使用者连线到资料库 oracle如何清除创建失败的索引 在人身意外伤害保险中保险人承保的风险是是什么 最好用的洗地机 成都国家美丽天堂端午节活动安排 剪纸剪出的傣家生活 傣族剪纸有何用途 傣族剪纸纸在德宏地区有吗 傣族剪纸主要用哪两种工具制作 傣族剪纸可以创新吗 包装车间空调配置标准 一天不知道干嘛怎么办 每天除了上班不知道干嘛怎么办呢?在线求高人指点一二 抖音评论你看一大早就让我入迷这样真的好吗我怎么回复 猪大排怎么做好吃又嫩大厨教程 大疆滤镜与耐司滤镜区别 肖春生哪一集被炸 水晶吊灯品牌最好的是哪个品牌?