7

在训练我的爬虫抓取 Yelp 页面时,它无需我做任何事情就可以获取所有信息,但是当我运行爬虫时,地址无法识别,也不会记录。

4

3 回答 3

8

从 Yelp 获取公司数据

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

网站分析

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

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

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

这是个好消息。

创建 API

我现在将创建一个 API 以从第一页获取数据,然后使用 Bulk Extract 将 URL 列表传递到所有 42 个页面。

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

  1. 转到 Magic.import.io
  2. 将 URL 粘贴到 Yelp 页面(上面的链接)
  3. 点击“提取数据”
  4. 点击“获取API”
  5. 点击“复制到我的数据”</li>

现在我们有了一个 API!

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

生成 URL 列表

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

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

大量提取物

现在,您可以使用 Bulk Extract 一次性从每个 URL 中获取数据。

去做这个:

  1. 转到 Yelp API 上的配置选项卡
  2. 从下拉列表中选择批量提取
  3. 粘贴到 42 个 URL 的列表中
  4. 点击“运行查询”</li>

注意:您可能会收到一些失败的查询。通过单击“X URLs failed”文本,您可以重试失败的查询。

出口

您现在可以将此数据以 HTML 或 JSON 格式导出到电子表格。

进一步阅读

http://support.import.io/knowledgebase/articles/669784-getting-company-data-from-yel​​p

于 2015-07-24T10:17:36.113 回答
1

您应该使用 xpath 在 yelp 上选择您想要的任何内容,我以前为 yelp 做过,xpath 比手动训练更准确。

于 2015-07-23T12:00:30.457 回答
0

我对http://datascramblr.com有更多的运气,因为 Yelp 会自动为你做这一切

于 2017-09-21T22:13:48.060 回答