爬虫--R语言--代码实战(以豆瓣网站为例) - 简书 (jianshu.com)
爬虫--R语言--基础知识 - 简书 (jianshu.com)
之前有断断续续学过基于R语言的爬虫,这次再从头梳理一遍流程与要点,供以后自己需要用到的时候参考。
1、html基础与xpath语法
1.1 html基础
- 大多数网页内容都是html结构组织的,在我理解就是有众多节点(node)组成的树状结构;
- 而我们想要爬取的内容就是其中的某个或者某些节点的文本标签或者属性中。
- 更多可参考:
(1)https://www.w3cschool.cn/html/html-basic.html
(2)HTML零基础入门教程(详细)_ZONGXP的博客-CSDN博客_html5零基础入门教程
1.2 xpath语法
-
一个html网页往往包含非常多的节点,如何准确、快速定位到目标节点是爬虫过程中的关键问题;而xpath语法可以帮助我们实现这一点;
xpath简单来说是帮助我们解析html结构的一种语言,简单入门比较推荐B站的视频:【智源学院】20分钟带你搞懂XPath — Scrapy数据解析神器_哔哩哔哩_bilibili
语法应用笔记推荐:
(1)XPath定位语法总结_Q0717168的博客-CSDN博客_xpath定位语法
(2)https://learnku.com/articles/50459
2、xpath工具推荐
2.1 浏览器自带的定位功能
-
打开目标网页→ 右键单击“检查”→点击审查元素窗口左上角箭头→网页界面选择感兴趣内容→选中元素窗口高亮部分→右键单击,选择copy xpath
-
在元素窗口,使用ctrl+F快捷键,可以不断调试xpath
2.2 google插件之XPath Helper
-
可以用来非常方便地调试、验证我们的xpath
2.3 google插件之SelectorGadget
- 该插件只需要我们在网页选择好感兴趣的标签,然后会自动生成能够定位到目标节点的xpath路径;
- 不过有一个缺点就是:SelectorGadget生成的xpath路径一般比较复杂,如果我们自己花心思调试一下(2.1)往往会生成简洁的xpath路径【通往罗马的道路不止一条】
3、R语言爬虫流程【重点】
一开始学习R语言爬虫时,直接
xml2::read_html()
对提交的网址进行解析,但经常会出现提交正确的xpath路径,但是没有提取到节点内容的尴尬结果{xml_nodeset (0)}
。
后来了解到针对动态网页的selenium爬取方法,尝试了一下果然可以得到预期的结果。而且我觉得动静态网页通吃,因此以后的R语言爬虫都采用下述的流程来操作。
- 参考笔记 :微信公众号:老俊俊的生信笔记--R语言爬虫系列笔记 R 爬虫之爬取文献信息 (qq.com)
前期准备:selenium相关配置(window) ⭐
参考笔记:https://zhuanlan.zhihu.com/p/24772389
step1:安装Java
- 下载、安装容易,但是将java命令添加到环境变量需要仔细一点
网上有很多笔记,例如:Java JDK安装和配置 - Java教程™ (yiibai.com) - 如果在window的cmd平台调用
java
命令,出现如下结果,说明安装、配置java成功了
step2:chrome浏览器相关
- 首先要下载、安装Chrome浏览器,根据提示选择默认安装路径即可 https://www.google.cn/chrome/
- 然后要下载ChromeDriver.exe https://sites.google.com/chromium.org/driver/
有两点要注意(1)下载ChromeDriver版本要与Chrome版本一致(我的是94系列);(2)储存路径要与chrome.exe
在一个文件夹内;我的安装路径是 C:\Program Files\Google\Chrome\Application
step3:下载selenium-server-standalone.jar
- 下载地址:http://selenium-release.storage.googleapis.com/index.html
有很多版本可供选择,我下载的是3.14版本;同时为了管理方便,与上面文件放在了同一文件夹内;
最后如果调用下面命令,出现如下图的结果说明selenium相关环境都配置好了
java -Dwebdriver.chrome.driver="C:\Program Files\Google\Chrome\Application\chromedriver.exe" -jar "C:\Program Files\Google\Chrome\Application\selenium-server-standalone-3.141.59.jar"
将会在下一节记录基于R语言爬虫的代码实操练习~