juanparati/phpscraper

1.1 2019-11-17 19:50 UTC

This package is auto-updated.

Last update: 2024-09-18 07:07:37 UTC


README

1. 这是啥?

一个用于从网页中提取和格式化内容的命令行工具。适用于提取如

  • 产品目录
  • 评论
  • 列表

输出格式为 JSON lines

2. 它是如何工作的?

  1. 创建一个爬虫收据(参见 recipes

  2. 类型

     phpscraper config url
    

以下示例将从亚马逊提取所有带有用户名、评论和评分的评论

    phpscraper recipes/amazon.yml https://www.amazon.de/product-reviews/B000J34HN4/ref=acr_dpx_hist_3?ie=UTF8

要查看更多选项,请输入

    phpscraper --help       

3. 食谱

食谱是YML文件,以结构化方式描述如何从页面中提取内容。食谱使用XPath路由来指示哪些元素将被提取。

以下是一个从亚马逊评论中提取评论的食谱示例

    project: "Amazon reviews extractor"
    pagination:
      next_xpath: "//li[@class='a-last']/a/@href"
    extraction:
      product:
        xpath: "//h1/a[@class='a-link-normal']"
        extract_as: "product"
        in_memory: true
      comments:
        xpath: "//div[@class='a-section celwidget']"
        subelements:
          product:
            from_memory: "product"
            extract_as: "product"
          name:
            xpath: "//span[@class='a-profile-name']"
            extract_as: "name"
          rate:
            xpath: "//i[contains(@class, 'a-icon-star')]/span"
            extract_as: "rating"
            extract_regex: "/^.{0,3}/"
            cast_as: float
          comment:
            xpath: "//span[@class='a-size-base review-text review-text-content']"
            extract_as: "comment"
          verified:
            xpath: "//span[@class='a-size-mini a-color-state a-text-bold']"
            extract_as: "verified"
            cast_as: boolean

3.1 分页部分

它定义了“下一页”按钮的位置。如果找不到该元素,则爬虫将完成当前页面的提取过程。

3.2 提取部分

它定义了将要提取的元素。它使用级联结构,因此可以定义父元素和子元素。

提取部分的可能指令有

  • xpath: 使用XPath表达式定义要提取的元素。如果存在父元素,则表达式将自动相对于父元素。
  • subelements: 定义子元素。
  • extract_as: 这总是必需的,并设置要提取的元素的字段名。
  • extract_regex: 用于提取内容的正则表达式。
  • cast_as: 将提取的数据转换为类型,以便JSON输出反映正确的数据类型。可能的转换类型为“布尔值”、“整数”、“浮点数”和“字符串”
  • in_memory: 当我们想在内存中临时保存时使用,例如在另一个提取线程中使用。

5. 安装

PHPscraper可以通过不同的方式安装

A) 从Github下载最新构建或B) 只需输入 "composer global require juanparati/phpscraper"

5. 如何构建自己的包

  • 下载Caveman(Mamuph辅助工具)

  • 克隆此项目

  • 在项目目录中输入

      caveman build . -x -r