用Python从网页爬取数据,网上相关文章很多,但能让零基础初学者轻松上手的却很少 。可能是有的作者觉得有些知识点太简单不值得花费精力讲,结果是难者不会会者不难,初学者常常因此而蒙圈 。本人也是小白,刚摸索着爬了两个简单的网页数据,经历了初学者易犯的各种糊涂,特总结分享一下,希望能对小白们有用 。
文章插图
1、本文代码环境:python3.7,requests模块、BeautifulSoup解析库python爬网络数据,方法很多 。不同的python版本、不同的模块、库,对应代码都不同 。所以,在看他人代码时,需要搞清代码环境所用的版本和使用的模块库等信息 。因为如果环境不同,相同的代码也可能没用 。初学者往往看到一篇文章讲的代码,复制过来就用,结果就是各种错误,这就是因为环境不同造成的 。
没有模块的,pip安装一下就好 。安装方法:点击电脑左下角开始——输入cmd回车,弹出cmd.exe界面——在界面上输入pip install requests回车,稍后,提示安装成功即完成了requests模块的安装 。BeautifulSoup解析库是属于bs4模块的一个功能块,所以,用pip安装时,要安装pip install bs4 。
2、爬虫4部曲:发出请求——获得网页——解析内容——保存内容建好了代码环境,就可以开始爬数据了,无论什么代码环境,爬虫核心都是这4步 。对新手来说,每一步都不简单,我们通过一个简单的爬取一篇小说代码,来看看到底是怎么爬数据的 。
3、爬取网络小说
文章插图
3-1 拟爬取的网络小说截图
如图3-1,我们试着把这篇小说爬下来保存为txt文件,按照爬虫4部曲,我们逐步来看:
1)、发出请求
用代码向网络发出请求,请求访问某个网址,首先我们得在代码中给出具体的网址信息,比如上面截图的网址是:https://www.biqiuge.com/book/4772/2940354.html
那这个网址是怎么得到的呢,常规方法是通过浏览器的开发者工具,我是用的360浏览器,点击右上角的工具菜单,点击开发者工具即可,打开后的界面如下图3-2:
文章插图
图3-2 开发者工具窗口
顶部菜单选择Network,中间圆圈选择Preview,通过选择左侧红色方框内的不同选项,观察Preview下部的内容,当能看到我们想要的文字时人(如图3-3),就说明找到了 。
文章插图
图3-3 箭头指示的就是准备爬取的数据
这时点击Preview左侧的Header面板,得到下图3-4中的url就是我们要找的网址 。复制后,粘贴到代码里就能发出请求了 。
文章插图
图3-4 找到请求的网址
有细心的会看到,这个网址和我们平常浏览网页时地址栏里的网址一样啊,还用这么麻烦?
文章插图
3-5 浏览器地址栏网址
这两个网址确实是一样的,是不用这么麻烦,直接从地址栏复制就可以 。但很多时候,我们要爬取的网页数据并不在浏览器地址栏的那个网址里,这个时候就需要通过上面的那个开发者工具方法去找 。
有了网址,发出请求的代码为:
url = "https://www.biqiuge.com/book/4772/2940354.html"#要爬取数据的网址response = requests.get(url)#发出访问请求,获得对应网页
访问请求的反馈结果放在response里了,这时我们用print(response)看看这个结果到底是什么?运行结果为:<Response [200]>【最简单的python爬虫案例,适合入门学习】这是个什么鬼?怎么不是我们想要的网页内容呢?解释一下:
运行结果的意思是:响应状态为成功 。可以放心写后面的代码了 。如果出现数字404,就是没找到页面的意思,响应不成功 。响应结果还需要解析才能得到网页内容 。
2)、获得网页
上面说了,已经请求访问并响应成功了,接下来就是如何获得具体网页内容了 。
soup = BeautifulSoup(response.content, 'lxml')# 将获得的网页内容解析写入soup备用
我们用print(soup)看一下结果,就会得到下图3-6的结果:文章插图
3-6 代码得到的网页内容
推荐阅读
- 亚特兰蒂斯真的存在 亚特兰蒂斯被发现
- Python破解验证码技术,识别率高达百分之八十
- 茶叶知识之黑茶与普洱茶的浅义及区别
- 服务器的1U、2U是什么意思?42U机柜可以放多少台服务器?
- Java回调的四种写法:反射+直接调用+接口调用+Lambda表达式
- Linux 提权—突破受限制的shell权限
- 周冬雨出道前的经历 周冬雨毕业于哪一所初中
- 成为高级黑客必须了解的,cors跨域和jsonp劫持漏洞
- 鲶科鱼类大全 世界上最大的鲇鱼
- 辛苦酿就清香 冻顶茶乡南投鹿谷的围城故事