coderLMN
coderLMN
@StAliya 这是因为你的本地文件夹里没有这两个文件,所以解析文件失败了。 你可以参考书中的**前言**里的_配套资源_部分,这两个文件在第三章的[配套目录](http://www.r-datacollection.com/materials/ch-3-xml/)里,你要把这两个文件下载到硬盘上,然后在代码里的 `file="xxxxxx.html"` 部分填写对应的文件路径,才能让代码正常执行。
9.1.6 节的用户名和密码是虚构的,见 P. 200 下部的注解,有可能是因为这个原因不成功。 qq 空间你是怎么尝试的,它是采用基本身份验证还是其他方式?如果方便的话,可以把你的代码贴出来看看。
QQ空间登录不是Basic authentication方式,所以你的方法不成功。另外,它的网页是 AJAX 增强的,你可以参考 9.1.9 节的内容。
P298 给出的是用 ftp 协议下载文件,你的代码是自己写的吗? ```r url
如果网页格式变成了 https,那么你的第二块代码应该是可以的: ```r url
我用了 XML 和 RCurl 两个 library,不知道你用的是什么。如果实在不行,就用书里访问 https 网页的方法试试看。
静态页面的结构如果存在一定规律的话, XPath 总是会有的,报错可能是因为你写的 XPath 不对。你可以一层一层地写,比如先把最外层的 `'/html/body/div[2]'` 写出来试试,看看取到的那个 div 是否是你要的,然后再加上下一层 div ,一步一步地缩小范围。
需要登陆网站的话,可以用 selenium 来解决,具体做法可以参考书中9.1.9节,不过书中推荐的组件 Rwebdriver 并不好用,我推荐用 RSelenium。你还可以参考这个讨论:https://github.com/coderLMN/AutomatedDataCollectionWithR/issues/8#issuecomment-260245460
这本书已经比较全面了,ajax、xpath、正则表达式,还有就是对网页结构的理解,这些内容如果都掌握好了,复杂的爬虫也没问题。其他的书我不太了解,即使有,也不外乎是这些内容。对于学习技术来说,我觉得精读一本书比泛读很多本更有效。
RSelenium 文档里 findElement 的调用和你这里的不一样,例如: ```r webElem