刮网器框架

alcazar的Python项目详细描述


Build StatusPyPI version

alcazar是一个python库,它简化了编写web scraper的任务。

它的一些核心功能是:

  • 简洁的语法用于在html页面、json文档、文本字符串中查找相关数据
  • http缓存到磁盘以便在不重新提交http请求的情况下准确重播擦痕
  • 限制对同一主机的请求
  • 当http请求失败或页面无法按预期解析时,自动重试
  • crawler用于维护要访问的url队列的工具
  • fail fast:默认情况下,我们宁愿崩溃,也不愿保存不正确或不完整的数据

Alcazar汇集了以下库:

入门

alcazar是available on PyPi,因此可以使用pip

pip install alcazar

使用库的最简单方法是实例化一个Scraper,并调用它的fetch方法:

>>>importalcazar>>>scraper=alcazar.Scraper()>>>page=scraper.fetch('https://en.wikipedia.org/wiki/Gorgie')>>>print(page.one('div[@id="toc"]/preceding-sibling::p[./b]').text.normalized)Gorgie(/ˈɡɔːrɡiː/GOR-gee)isadenselypopulatedareaofEdinburgh,Scotland.ItislocatedinthewestofthecityandbordersMurrayfield,ArdmillanandDalry.

在这段代码中:

  • 我们已获取该页的HTML
    • 如果发生任何网络错误或http错误,我们将重试几次,每次尝试之间的睡眠时间都会增加
  • 我们已将HTML解析为树
    • 使用lxml的出色处理和从“坏”html中恢复,如在wild中所见
  • 我们已经找到了我们感兴趣的元素
    • 这里使用的是xpath表达式,但我们也可以使用css选择器
    • 我们检查了是否只有一个元素与我们的查询匹配
    • 否则就会抛出一个异常,确保我们只捕获所需的内容
  • 我们提取了它的文本,删除了它的所有标记,并规范化了它的空白

查看samples目录了解alcazar的工作原理。

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

推荐PyPI第三方库


热门话题
java IOException:未找到springxml   ide Eclipse:对不同的项目使用相同的输出文件夹   Java检查平衡圆括号   java Android RecyclerView错误   java Heroku JAXRS POST   在IDE中使用ApachePOI将java导出到excel是可行的,但当我创建runnable jar时就不行了   outlook无法以Java编程方式更新定期会议   通过java和tomcat(本地主机)发送电子邮件   java Random在2个周期内,我需要重新初始化吗?   java Spring JPA Cascade。ALL不会删除父对象   搜索如何在Java中从对象中查找特定属性   java@Schedule在随机时刻执行   Java代码格式linter   java创建entitymanager的最佳实践   java为什么Hibernate希望复合主键有一个单独的表?(@EmbeddedId)   子[Firebase数据库Android]中的java orderByValue   java避免两次注销表单服务安卓   如何将Jess(.jar文件)库转换为。dex文件,还是在Android上运行java类文件?