【发布时间】:2017-11-07 11:34:04
【问题描述】:
我无法抓取 Facebook 的 API 响应中的链接。当我抓取其他网页时,一切正常。 我使用 Nutch 2.2.1、Hbase 0.9 进行存储,使用 Solr 进行索引。 作为种子,我正在使用
https://graph.facebook.com/v2.10/me?fields=friends%7Bfeed%7Bpermalink_url%7D%2Cname%7D&access_token=<MY_ACC_TOKEN>
注入就可以了。 在爬行周期结束时,我将种子保存在我的数据库中。 但是在抓取过程中,nutch 没有看到任何 URL
Fetcher: throughput threshold: -1
-finishing thread FetcherThread49, activeThreads=0
Fetcher: throughput threshold sequence: 5
0/0 spinwaiting/active, 0 pages, 0 errors, 0.0 0 pages/s, 0 0 kb/s, 0 URLs in 0 queues
我刚刚尝试编辑任何丢弃包含 charatchers 作为可能查询的 URL 的文件,但没有任何反应。 我已经实现了https,默认是不行的。
我该如何解决这个问题?
【问题讨论】:
-
什么意思,它“没有看到任何 URL”?它应该在哪里看到那些……?
-
在我的 api 请求中,我已经为我的朋友列表的任何提要节点指定了 permalink_url 字段。我只是试图卷曲那个 api 请求,我可以得到我想用 nutch 抓取的 url。 “Doesn t see”意味着输出显示“0 pages fetched and 0 urls”
-
您知道这些朋友中的每一位都必须登录您的应用并授予其
user_posts权限,然后您才能访问他们的供稿,对吧? -
“我可以得到我想用 nutch 抓取的 url” - 你的意思是你想做真正的 scraping? Facebook 不允许这样做。
-
是的,我知道,我有大约 10 个朋友拥有此权限和其他权限。问题是 nutch“看不到”链接来自 html 标签。这不仅仅发生在 Facebook api,但也适用于其他网页。例如,如果我尝试在维基百科的某些页面上使用 nutch,我可以获得除一些“参考部分”链接之外的所有链接,这些链接位于标签的正文文本中。我不知道“网络抓取”的正确含义,我需要人们编写的文本,以便在不跟踪任何人的情况下使用 Stanbol 进行语义分析。
标签: regex apache facebook-graph-api web-crawler nutch