coderLMN

Results 85 comments of coderLMN

我在 P.331 下面的译者注里已经提到过这个问题,随着业务和技术的变化,网页经常会改版,结构也会发生变化,因此不能照搬书中的代码,要自己先对网页进行分析,再编写 xpath 来提取数据。

你看一下 `parsedFirstSearchPage` ,在 `` 标签下面有注释: ```html ``` 就是说 Amazon 现在不允许自动爬取它的网页了,如果要通过接口读取它的数据,需要申请。往下看,这个网页的内容很少,就是一个对付机器人的验证码。 对这种情况,你可以尝试用 Selenium 来抓取这些网页,也可以直接跳到 P.338 ,下载原书在 github 上提供的 `amazonProductInfo.db` 文件:https://github.com/crubba/Wiley-ADCR/blob/master/ch-16-amazon/amazonProductInfo.db ,继续进行分析。

Selenium 的具体用法可以参考 9.1.9 节的内容,类似网站你可以看看其他的电商网站是否可用。

你可以仔细看一下 `ProductPages` 里的内容,分析为什么价格出不来,也许是 xpath 有问题。

第一个问题的原因有可能是没有取到数据。我怀疑是前面的 .html 文件下载没有成功,你可以看看本地的 `~/Press_Releases/` 文件夹里是否有 245 个 .html 文件(原书翻译的时候是 747 个,现在已经少了),会不会是因为你还没有建这个文件夹呢。我下载数据之后,再按照你上面的这些代码执行,结果是没有问题的: ```r > meta(release_corpus[[1]]) author : character(0) datetimestamp: 2017-12-28 03:56:52 description : character(0) heading : character(0) id : 1 language...

(1) OAuth 的授权和访问端点一般都会在网站的 developers 页面(即开发者网页)里说明,或者通过搜索 " 网站名 + OAuth " 关键字找到。比如针对 Yahoo 的 OAuth 验证,在无法使用 Google 的时候,用 bing.com 搜索 "yahoo OAuth" (珍爱生命,远离百度)找到的第一个结果就是 Yahoo 的开发者网络里关于 OAuth 的内容: https://developer.yahoo.com/oauth/ ,在 Documentation 里就可以找到具体的授权方法。...

1. 你可以再看一下 p. 219,authorize 对应的是获取临时证书的网址,而 access 对应的是获得访问令牌证书的网址。这是根据 OAuth 的原理来实现的,具体的两个网址需要查看要访问的网站的文档。 2. 这个错误信息就是说你的系统参数 `FACEBOOK_CONSUMER_SECRET `里没有 secret 。从你前面给出的代码` Sys.setenv(FACEBOOK_CONSUMER_SECRET="应用秘钥")` 来看,估计你给的是 app ID 而不是 secret,所以这个系统参数出错了。 你在` fb_app

“重定向网址不被支持” 的错误信息原文是什么?可以到 stackoverflow 里去查一下。

错误信息里提到的` redirect_uri` 实际上就是前面网址最后那一段里的 `redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob` ,这个 uri 转码过来就是 `urn:ietf:wg:oauth:2.0:oob` 。出错的原因是 Facebook 的接口并不支持这个 OAuth 缺省产生的 uri ,所以还要去读 Facebook 有关 OAuth 的文档。 另外,我在前面提到了,Facebook 的许可清单里有内容(例如示例代码里的 `user_checkins` 等等)被取消或名称已改变,照搬原书代码会出错,你可以一个一个加(比如先加 `user_birthday` 不加其他的试试),但是最重要的还是去看要访问的网站的技术文档,了解它的 API 具体格式和要求。