爬虫最怕遇到JavaScript依赖性的动态网页
静态网站内容爬取,rvest、RCurl、XML这几个包都可以实现这个功能。比如下面的网页:
http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/xsjj/index.phtml?num=20&p=
library(rvest)
url <- paste0('http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/xsjj/index.phtml?num=20&p=',
1:6)
trade <- lapply(url,function(x){
html_table(read_html(x), header =T)[[1]]
})
trade1 <- do.call(rbind,trade)
url='http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/xsjj/index.phtml?p='
get_tables <- function(url){
fit<-try(web <- read_html(url),silent=TRUE)
if('try-error' %in% class(fit)){
cat('HTTP error 404\n')
}else{
return(html_table(web) [[1]])
}
}
trade=lapply(1:6, function(i){
get_tables(paste0(url,i))
})
trade1 <- do.call(rbind,trade)
http://www.brics.ac.cn/plasmid/template/plasmid/plasmid_list.html
https://blog.csdn.net/eastmount/article/details/80088948
1.定位驱动:driver = webdriver.Firefox()
2.访问网址:driver.get(url)
3.定位节点获取第一页内容并爬取:driver.find_elements_by_xpath()
4.获取“下一页”按钮,并调用click()函数点击跳转
5.爬取第2页的网站内容:driver.find_elements_by_xpath()
其核心步骤是获取“下一页”按钮,并调用Selenium自动点击按钮技术,从而实现跳转,之后再爬取第2页内容。
https://zhuanlan.zhihu.com/p/24772389
https://phantomjs.org/quick-start.html https://javascript.ruanyifeng.com/tool/phantomjs.html https://mp.weixin.qq.com/s/mGwm-rAdwyr63l8mv0l_DQ
var page = webPage.create();
http://www.brics.ac.cn/plasmid/template/plasmid/plasmid_detail.html?id=39983 http://www.brics.ac.cn/plasmid/template/plasmid/plasmid_detail.html?id=39982 http://www.brics.ac.cn/plasmid/template/plasmid/plasmid_detail.html?id=39979
var page = webPage.create();
var fs = require('fs');
var path = 'test.html'
page.open('http://www.brics.ac.cn/plasmid/template/plasmid/plasmid_detail.html?id=39983', function (status) {
var content = page.content;
fs.write(path,content,'w')
phantom.exit();
});
文末友情宣传
生信爆款入门-全球听(买一得五)(第5期)(可能是最后一期)你的生物信息学入门课 (必看!)数据挖掘第3期(两天变三周,实力加量),医学生/临床医师首选技能提高课 生信技能树的2019年终总结 ,你的生物信息学成长宝藏 2020学习主旋律,B站74小时免费教学视频为你领路,还等什么,看啊!!!
赞 (0)