运行爬网程序不会获得与培训时相同的数据

时间:2015-07-13 23:47:40

标签: import.io

在训练我的抓取工具抓取Yelp页面时,它会在没有我做任何事情的情况下获取所有信息,但是当我运行抓取工具时,地址无法识别,并且不会记录。

3 个答案:

答案 0 :(得分:8)

从Yelp获取公司数据

在这种情况下,我们希望从网站www.yelp.com获取旧金山公司的地址。

网站分析

我们可以从此页面获得以字母“A”开头的公司列表:

http://www.yelp.com/sm/san-francisco-ca-us/a/1

此目录页面告诉我们“A”有42页的结果,每页最多80个结果。

这是个好消息。

创建API

我现在要创建一个API来从第一页获取数据,然后使用批量提取将URL列表传递给所有42个页面。

使用Magic,我只需点击几下即可生成API:

  1. 转到Magic.import.io
  2. 粘贴到Yelp页面的URL(上面的链接)
  3. 点击“提取数据”
  4. 点击“获取API”
  5. 点击“将此复制到我的数据”
  6. 现在我们有了一个API!

    (请注意,如果您需要更多控制API中包含或排除的内容,您可以使用Extractor)

    生成网址列表

    要生成允许我们从第1页到第42页获取数据的网址列表,我将使用托管在以下位置的外部服务:

    http://texttool.blogspot.co.uk/

    找到"生成数字列表"工具并生成一个URL列表:

    http://www.yelp.com/sm/san-francisco-ca-us/a/1
    http://www.yelp.com/sm/san-francisco-ca-us/a/2
    http://www.yelp.com/sm/san-francisco-ca-us/a/3
    http://www.yelp.com/sm/san-francisco-ca-us/a/4
    http://www.yelp.com/sm/san-francisco-ca-us/a/5
    http://www.yelp.com/sm/san-francisco-ca-us/a/6
    http://www.yelp.com/sm/san-francisco-ca-us/a/7
    http://www.yelp.com/sm/san-francisco-ca-us/a/8
    http://www.yelp.com/sm/san-francisco-ca-us/a/9
    http://www.yelp.com/sm/san-francisco-ca-us/a/10
    http://www.yelp.com/sm/san-francisco-ca-us/a/11
    http://www.yelp.com/sm/san-francisco-ca-us/a/12
    http://www.yelp.com/sm/san-francisco-ca-us/a/13
    http://www.yelp.com/sm/san-francisco-ca-us/a/14
    http://www.yelp.com/sm/san-francisco-ca-us/a/15
    http://www.yelp.com/sm/san-francisco-ca-us/a/16
    http://www.yelp.com/sm/san-francisco-ca-us/a/17
    http://www.yelp.com/sm/san-francisco-ca-us/a/18
    http://www.yelp.com/sm/san-francisco-ca-us/a/19
    http://www.yelp.com/sm/san-francisco-ca-us/a/20
    http://www.yelp.com/sm/san-francisco-ca-us/a/21
    http://www.yelp.com/sm/san-francisco-ca-us/a/22
    http://www.yelp.com/sm/san-francisco-ca-us/a/23
    http://www.yelp.com/sm/san-francisco-ca-us/a/24
    http://www.yelp.com/sm/san-francisco-ca-us/a/25
    http://www.yelp.com/sm/san-francisco-ca-us/a/26
    http://www.yelp.com/sm/san-francisco-ca-us/a/27
    http://www.yelp.com/sm/san-francisco-ca-us/a/28
    http://www.yelp.com/sm/san-francisco-ca-us/a/29
    http://www.yelp.com/sm/san-francisco-ca-us/a/30
    http://www.yelp.com/sm/san-francisco-ca-us/a/31
    http://www.yelp.com/sm/san-francisco-ca-us/a/32
    http://www.yelp.com/sm/san-francisco-ca-us/a/33
    http://www.yelp.com/sm/san-francisco-ca-us/a/34
    http://www.yelp.com/sm/san-francisco-ca-us/a/35
    http://www.yelp.com/sm/san-francisco-ca-us/a/36
    http://www.yelp.com/sm/san-francisco-ca-us/a/37
    http://www.yelp.com/sm/san-francisco-ca-us/a/38
    http://www.yelp.com/sm/san-francisco-ca-us/a/39
    http://www.yelp.com/sm/san-francisco-ca-us/a/40
    http://www.yelp.com/sm/san-francisco-ca-us/a/41
    http://www.yelp.com/sm/san-francisco-ca-us/a/42
    

    批量提取

    现在,您可以使用批量提取一次性从每个网址获取数据。

    要做到这一点:

    1. 转到Yelp API上的“配置”选项卡
    2. 从下拉列表中选择批量提取
    3. 粘贴42个网址列表
    4. 点击“运行查询”
    5. 注意:您可能会遇到一些失败的查询。通过单击“X URL failed”文本,您可以重试失败的查询。

      导出

      您现在可以将此数据导出为电子表格,如HTML或JSON。

      进一步阅读

      http://support.import.io/knowledgebase/articles/669784-getting-company-data-from-yelp

答案 1 :(得分:1)

你应该使用xpath在yelp上选择你想要的东西,我之前已经为yelp做过,xpath比手动训练更准确。

答案 2 :(得分:0)

我为http://datascramblr.com带来了更多好运,Yelp自动为你做了所有这些。