位置: 编程技术 - 正文

Python爬虫包 BeautifulSoup 递归抓取实例详解(python爬虫系统)

编辑:rootadmin

推荐整理分享Python爬虫包 BeautifulSoup 递归抓取实例详解(python爬虫系统),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python爬虫用到的包,python爬虫工具包,python爬虫用到的包,python爬虫常用包,python爬虫工具包,python爬虫常用包,python爬虫包有哪些,python爬虫包下载,内容如对您有帮助,希望把文章链接给更多的朋友!

Python爬虫包 BeautifulSoup 递归抓取实例详解

概要:

爬虫的主要目的就是为了沿着网络抓取需要的内容。它们的本质是一种递归的过程。它们首先需要获得网页的内容,然后分析页面内容并找到另一个URL,然后获得这个URL的页面内容,不断重复这一个过程。

让我们以维基百科为一个例子。

我们想要将维基百科中凯文·贝肯词条里所有指向别的词条的链接提取出来。

上面这个代码能够将页面上的所有超链接都提取出来。

Python爬虫包 BeautifulSoup  递归抓取实例详解(python爬虫系统)

首先,提取出来的URL可能会有一些重复的

其次,有一些URL是我们不需要的,如侧边栏、页眉、页脚、目录栏链接等等。

所以通过观察,我们可以发现所有指向词条页面的链接都有三个特点:

它们都在id是bodyContent的div标签里 URL链接不包含冒号 URL链接都是以/wiki/开头的相对路径(也会爬到完整的有http开头的绝对路径)

其中getLinks的参数是/wiki/<词条名称>,并通过和维基百科的绝对路径合并得到页面的URL。通过正则表达式捕获所有指向其他词条的URL,并返回给主函数。

主函数则通过调用递归getlinks并随机访问一条没有访问过的URL,直到没有了词条或者主动停止为止。

这份代码可以将整个维基百科都抓取下来

一般来说Python的递归限制是次,所以需要人为地设置一个较大的递归计数器,或者用其他手段让代码在迭代次之后还能运行。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

利用python实现命令行有道词典的方法示例 前言由于一直用Linux系统,对于词典的支持特别不好,对于我这英语渣渣的人来说,当看英文文档就一直卡壳,之前用惯了有道词典,感觉很不错,虽然

利用Python脚本生成sitemap.xml的实现方法 安装lxml首先需要pipinstalllxml安装lxml库。如果你在ubuntu上遇到了以下错误:#include"libxml/xmlversion.h"compilationterminated.error:command'x_-linux-gnu-gcc'failedwithexitstatu

利用python画一颗心的方法示例 前言Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能'。用它可以制作折线图,直方图,条形图,散

本文链接地址:https://www.jiuchutong.com/biancheng/380024.html 转载请保留说明!

上一篇:python 编程之twisted详解及简单实例(python twinter)

下一篇:利用python实现命令行有道词典的方法示例(python中的命名规范)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络