coderLMN / AutomatedDataCollectionWithR

《基于 R 语言的自动化数据采集技术》读者讨论区
28 stars 10 forks source link

说明:书中的一些示例代码只能作为参考 #3

Open coderLMN opened 8 years ago

coderLMN commented 8 years ago

大家都知道,对于活跃的网站来说,定期改版页面是必须的。因此网页结构的变化也不可避免。本书中的代码只是根据在某个时间点对网页结构进行的分析而编写的,并不等于这些代码是长期有效的。

比如在第一章,濒危文化遗产地的维基百科网址 http://en.wikipedia.org/wiki/List_of_World_Heritage_in_Danger 用 htmlParse() 函数就会报错,这是因为维基百科已经启用了 https 安全协议,因此需要证书才能访问,读者可以参考 9.1.7 "通过 HTTPS 进行的连接" 中的内容,对原书代码进行修改。

再比如我在翻译的过程中就发现“商品评论的情绪”一章中,亚马逊网页的结构已经发生了变化,并在书中 16.1.2 节注明了变化的情况。但是随着时间的流逝,其他网页也难免会变。这种页面结构的变化是现代网站普遍存在的现象。毕竟网页开发的技术在不断进步,包括 HTML5 和 CSS3 的出现,大大提高了网页应用的用户体验,网站的前端经常会发生变化,也是正常现象。

总之,毕竟这是一本关于网络抓取的书,读者应该根据书中讲解的原理自己去尝试分析页面,写出自己的代码,而不是拘泥于书上的代码,这样学习的效果会更好。

StAliya commented 8 years ago

作者你好,请问第三章中的两行代码: parsed_stocks<-xmlParse(file='stocks/technology.xml') parsed_doc<- htmlParse(file= "fortunes.html") 运行完之后都会出现: 错误: XML content does not seem to be XML: 'stocks/technology.xml' Warning message: XML content does not seem to be XML: 'fortunes.html' 是因为什么原因呢?这样的话是不是书里的例子代码都不能运行了?

coderLMN commented 8 years ago

@StAliya 这是因为你的本地文件夹里没有这两个文件,所以解析文件失败了。

你可以参考书中的前言里的_配套资源_部分,这两个文件在第三章的配套目录里,你要把这两个文件下载到硬盘上,然后在代码里的 file="xxxxxx.html" 部分填写对应的文件路径,才能让代码正常执行。

StAliya commented 8 years ago

好的,明白了,多谢!

Alxe1 commented 7 years ago

吴老师,在9.1.6节HTTP身份验证的地方,我输入代码但是出现Basic authentication cancelled.并没有预想的页面出现,我又用qq空间试了一下,最后出来的只是qq空间进入页面的源代码,这是怎么回事。

coderLMN commented 7 years ago

9.1.6 节的用户名和密码是虚构的,见 P. 200 下部的注解,有可能是因为这个原因不成功。 qq 空间你是怎么尝试的,它是采用基本身份验证还是其他方式?如果方便的话,可以把你的代码贴出来看看。

Alxe1 commented 7 years ago

我的做法和书上的一样,只是url改成了我登录的qq界面,userpwd改成了我的qq账号和密码。 @coderLMN

coderLMN commented 7 years ago

QQ空间登录不是Basic authentication方式,所以你的方法不成功。另外,它的网页是 AJAX 增强的,你可以参考 9.1.9 节的内容。

Alxe1 commented 7 years ago

谢谢,我会试一试的

GreenEric commented 7 years ago

非常谢谢