爬行网站的库

http-crawler的Python项目详细描述


http crawler是一个用于对网站进行爬网的库。它使用requests来讲http。

安装

安装时使用pip

$ pip install http-crawler

用法

http_crawler模块提供一个生成器函数crawl

crawl通过url调用,并生成requests^{tt4}$类的实例。

crawl将请求给定url处的页面,并从响应中提取所有url。然后,它将对这些url中的每一个发出请求,并重复该过程,直到它请求了从原始url域的页面链接到的每个url为止。它不会从与原始url具有不同域的任何页面提取或处理url。

例如,这就是使用crawl查找和记录站点上任何断开的链接的方法:

>>> fromhttp_crawlerimportcrawl>>> forrspincrawl('http://www.example.com'):>>> ifrsp.status_code!=200:>>> print('Got {} at {}'.format(rsp.status_code,rsp.url))

crawl有许多选项:

  • follow_external_links(默认值True)如果设置,crawl将对它遇到的每个url发出请求,包括与原始url具有不同域的url。如果未设置,crawl将忽略与原始url具有不同域的所有url。在这两种情况下,crawl都不会从具有不同域的页面中提取更多的url到原始url。
  • ignore_fragments(默认值True)如果设置,crawl将忽略任何url的片段部分。这意味着,如果crawl遇到http://domain/path#anchor,它将请求http://domain/path。而且,这意味着如果crawl遇到http://domain/path#anchor1http://domain/path#anchor2,它将只发出一个请求。
  • verify(默认值True)此选项控制ssl证书验证的行为。有关详细信息,请参见requests documentation

动机

为什么是另一个爬行图书馆?当然有很多python工具可以用来抓取网站,但我所能找到的要么太复杂,要么太简单,要么有太多的依赖关系。

http crawler被设计为library and not a framework,因此在应用程序或其他库中使用应该很简单。

贡献

issue tracker上有一些增强,对于那些希望第一次为开源做出贡献的人来说是合适的。

有关发出拉取请求的说明,请参见GitHub’s guide

所有贡献都应该包括100%代码覆盖率的测试,并且应该符合PEP 8。该项目使用tox来运行测试和检查代码质量度量。

运行测试:

$ tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JTable无法向新创建的列添加值   java如何调整JEditorPane中编辑区域的大小?   Java通过反射确定未知数组中的数组大小   java Intellij Idea有时无法按其预期的方式构建应用程序   java Swing GUI带有IntelliJ错误“contentPane不能设置为null”从终端编译时   如何将这些通用方法调用从C#转换为Java   在null上找不到java属性或字段“index”   从Java HashMap获取整数值时是否需要调用intValue()方法?   java Android谷歌地图获取相机中的图像块   unix无法捕获JAVA中“who m”命令的输出   java,同时将邮件发送到“收件人”标题“我”中的多个收件人   在java中向链表添加未知数量的节点   无法为Heroku上的discord bot设置java端口   java使用Apache HttpClient进行选项请求   与元素类型“ApplicationName”关联的属性“Application Version”需要java Open quote   Android Studio Java中的两个变量求和