网页抓取的框架/工具。

ghettobird的Python项目详细描述


贫民区鸟

为web抓取而设计的Python框架/工具。 (本自述和工具本身仍在构建中。)

安装

使用包管理器pip安装foobar。在

pip install ghettobird

目标

这个项目的主要目标是将抓取应用程序简化为单个dictionary/JSON对象(附带一些辅助函数)。在

这允许我们:

  • 减少样板代码
  • 提高代码的可读性
  • 对脆弱的代码进行分组以便于维护
  • 减少错误处理中的不一致性

使用

使用示例的特点是website。这是一个静态的HTML页面,但是很快就会添加一个JS重的示例。在

^{pr2}$

Example One:获取单个元素

如果我们想从示例页面中获取一个页眉,并且只希望返回一个元素,那么可以使用以下“flightpath”:

itinerary={"url":"http://ghettobird.sample.s3-website.us-east-2.amazonaws.com","flightpath":{"header":"//*[@class='page-header']",},}

我们将返回一个字典,该字典遵循我们制定的蓝图,但数据填充有:

{'header':'Jobs in St. Louis, Missouri'}

示例二:获取列表

如果我们想从示例页面获取每个职位名称,下面的flightpath将是合适的。注意xpath后面的括号。这允许我们从元素返回多个值。在

itinerary={"url":"http://ghettobird.sample.s3-website.us-east-2.amazonaws.com","flightpath":{"titles":["//h4[@class='title']"],},}

结果是:

{'titles':['Senior Software Dev','Agile Coach','Software Engineer','Junior Software Dev','Ping Pong Player']}

示例三:转换器函数

默认情况下,除非另有指定,否则使用给定xpath找到的元素将返回其文本值。但是,如果我们需要对元素执行某种转换或获取HREF而不是文本,“transformer”函数将是必需的。在

fromghettobirdimportfly,transformer

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

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像