首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行爬虫程序不会获得与训练时相同的数据

运行爬虫程序不会获得与训练时相同的数据
EN

Stack Overflow用户
提问于 2015-07-14 07:47:40
回答 3查看 328关注 0票数 7

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

EN

回答 3

Stack Overflow用户

发布于 2015-07-24 18:17:36

从Yelp获取公司数据

在本例中,我们希望从网站www.yelp.com获取旧金山公司的地址。

站点的分析

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

代码语言:javascript
复制
http://www.yelp.com/sm/san-francisco-ca-us/a/1

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

这是个好消息。

创建接口

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

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

  1. 转到Magic.import.io
  2. 粘贴Yelp页面的URL (上面的链接)
  3. 单击“提取数据”
  4. 单击“获取应用编程接口”

<代码>H116单击“将此复制到我的数据”<代码>H217<代码>G218

现在我们有了一个API!

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

生成URL列表

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

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

找到"generate list of numbers“工具并生成URL列表:

代码语言:javascript
复制
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

批量提取

现在,您可以使用批量提取一次性从这些URL中获取数据。

为此,请执行以下操作:

  1. 转到您的Yelp API
  2. 上的配置选项卡从下拉列表中选择批量提取
  3. 粘贴在42个URL列表中
  4. 单击“Run Queries”

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

导出

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

进一步阅读

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

票数 8
EN

Stack Overflow用户

发布于 2015-07-23 20:00:30

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

票数 1
EN

Stack Overflow用户

发布于 2017-09-22 06:13:48

我在http://datascramblr.com上有更多的运气,就像Yelp自动为你做的一切一样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31395343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档