使用R包rvest/XML/RCurl入門R爬蟲

css selector手冊:https://www.runoob.com/cssref/css-selectors.html
xpath selector手冊:https://www.runoob.com/xpath/xpath-tutorial.html
xpath查找節(jié)點:https://www.cnblogs.com/txwen/p/7999485.html
學(xué)習(xí)視頻:https://www.bilibili.com/video/av30320885 https://www.bilibili.com/video/av36907341?from=search&seid=12650656636924845868 https://www.bilibili.com/video/av39807071?p=7
參考文檔:https://zhuanlan.zhihu.com/p/22916652
關(guān)于GET和POST的有趣的解釋:https://zhuanlan.zhihu.com/p/22536382
RCurl解析:https://blog.csdn.net/kMD8d5R/article/details/78933384
html文件及http基本知識:https://www.w3school.com.cn/tags/html_ref_byfunc.asp
post/get格式化工具:http://coolaf.com
如何查看post的參數(shù):https://jingyan.baidu.com/article/d45ad1487f057669552b8030.html
一個爬蟲初學(xué)者友好的教程:http://www.reibang.com/p/0c0cb9867b44
多個網(wǎng)站的抓取實操:https://blog.csdn.net/hill_night/article/details/45789655?locationNum=12&fps=1
抓取財經(jīng)網(wǎng)股票信息實操:http://blog.sina.com.cn/s/blog_685d10480102wyn9.html
利用postform模擬登錄抓取新浪微博信息:http://www.dataguru.cn/article-873-1.html
一個通過模擬登錄抓取教務(wù)處信息的案例:https://blog.csdn.net/kMD8d5R/article/details/78737442
模擬登錄需要輸入用戶名密碼的網(wǎng)頁:https://www.zhihu.com/question/65799576
模擬登錄可能需要的cookie的解釋:http://www.reibang.com/p/6fc9cea6daa2
通過替換cookie來模擬登錄:https://www.cnblogs.com/huahuayu/p/8207037.html
通過get方式提交request時如果是漢字會自動變成url編碼遏片,有關(guān)這類編碼的介紹:https://www.cnblogs.com/niuyaomin/p/11788732.html
url編碼的解析器:http://web.chacuo.net/charsetbase64
不錯的爬蟲實例:https://ask.hellobi.com/blog/R_shequ/33920
rvest模擬瀏覽行為:https://blog.csdn.net/weixu22/article/details/79237512
https://blog.csdn.net/Joyliness/article/details/78722317
高級爬蟲教程:http://www.reibang.com/p/1fc6a6817160
rvest模擬點擊網(wǎng)頁:https://www.jb51.cc/html/224799.html

library(rvest)
url_eye<-"https://list.tmall.com/search_product.htm?q=%D1%DB%BD%DE%C3%AB&type=p&vmarket=&spm=875.7931836%2FB.a2227oh.d100&from=mallfp..pc_1_searchbutton"
url_eye
html_session(url_eye)
web_eye<-read_html(url_eye,encoding = "GBK")
pic<-html_nodes(web_eye,xpath = '//div[@class="view grid-nosku "]//div[@class="productImg-wrap"]//img')
pic
pic_dir<-html_attr(pic,"src")
pic_dir<-html_attr(pic,"data-ks-lazyload")
pic_dir<-pic_dir[!is.na(pic_dir)]
pic_dir<-paste("http:",pic_dir,sep = "")
for (i in 1:55) {
  download.file(pic_dir[i],paste(i,".jpg",sep = ""))
}
#爬取GEO中的樣本編號和名稱3透尽!战转!
#注意:1赡译、時刻查看xpath與真實下載的html文件的差異,因為瀏覽器上展示的信息可能與真實下載的文件信息不同!
#2领舰、當(dāng)輸入xpath后獲得的節(jié)點為null時,可以使用‘/div’來驗證html文件是否有效迟螺!
library(XML)
library(RCurl)
library(rvest)
url<-"https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE72056"
myheader<-c("User-Agent"= "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36")
myheader
temp<-getURL(url,httpheader=myheader,.encoding = "utf-8")
temp
temp<-htmlParse(temp)
temp
nodes<-getNodeSet(temp,path = '//table[@style="position:relative;top:-5px;left:-5px"]/tr')
nodes
value<-sapply(nodes,xmlValue)
value

#爬取大眾點評上的信息冲秽,注意:1、淘寶和天貓需要登錄才能爬染馗浮(或許是別的原因)2锉桑、如果懷疑html文件有問題,可以保存為html后用瀏覽器打開查看窍株!
library(RCurl)
library(XML)
url<-"http://www.dianping.com"
myheader<-c(
  "User-Agent"="Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) ",
  "Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "Accept-Language"="en-us",
  "Connection"="keep-alive",
  "Accept-Charset"="GB2312,utf-8;q=0.7,*;q=0.7"
)
temp<-getURL(url,httpheader=myheader,.encoding = "utf-8")
(temp)
write.table(temp,"temp.html")
temp<-htmlParse(temp)
temp<-getNodeSet(temp,'//div[@class="shop-item"]//img')
temp
temp<-lapply(temp,xmlAttrs)#提取節(jié)點所有屬性值
temp<-sapply(temp,function(x){x=x[names(x)=="lazy-src"];return(x)})#提取節(jié)點某一屬性值
temp


library(rvest)
url<-"http://www.dianping.com"
temp<-read_html(url,encoding = "utf-8")
node<-html_nodes(temp,xpath = '//div[@class="shop-item"]//img')%>%html_attr(name = "src")
node
url<-"http://www.baidu.com"
#rvest

web<-read_html(url,encoding = "utf-8")
web
#html_document
temp1<-html_nodes(web,xpath = "http://img")
temp1
#[1] "xml_nodeset"
attrs<-html_attrs(temp1)
#沒有亂碼


#rcurl+xml
library(RCurl)
library(XML)
html_session(url)
web<-getURL(url = url,.encoding = "utf-8")
web
#character
temp<-htmlParse(web)
class(temp)
#"HTMLInternalDocument" "HTMLInternalDocument" "XMLInternalDocument"  "XMLAbstractDocument"
#temp<-htmlTreeParse("./1688.html",encoding = "UTF-8")
#temp
#"XMLDocumentContent"
temp<-getNodeSet(temp,"http://img")
temp
#[1] "XMLNodeSet"
attrs2<-lapply(temp,xmlAttrs)
#有亂碼
iconv(attrs2[[4]],from = "UTF-8")
#可以消除亂碼
#使用爬蟲解析本地html
#注:淘寶天貓京東等暫時無法通過url解析和本地解析的方法爬取信息
#rvest
web<-read_html("./dazhongdianping.html",encoding = "utf-8")
web
nodes<-html_nodes(web,xpath = "http://img")
nodes


#RCurl+XML
web1<-htmlParse("./dazhongdianping.html",encoding = "utf-8")
web1
nodes1<-getNodeSet(web1,"http://img")
nodes1
#注意C裰帷!<欣选杉武!根據(jù)getnodesset和html_nodes的說明文件,目前其僅支持xpath 1.0 selector ,同時在出現(xiàn)[]是@屬性="xxxxxx xxxxx"不被認可(中間用空格無法識別)建議換成//div[contains(@class,'')]辙售,注意使用單引號G岜А!5┎俊祈搜!
url<-"https://sh.lianjia.com/ershoufang/"
web2<-read_html(url,encoding = "utf-8")
web2<-html_nodes(web2,xpath = "http://ul[@class='sellListContent']/li[contains(@class,'clear')]/a")#這樣也可以正常運行较店,但是要用單引號!容燕!
web2
#成功爬取
#若使用//ul[@class="sellListContent"]/li[@class="clear  LOGCLICKDATA"]/a    則爬取失斄撼省!蘸秘!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末官卡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子醋虏,更是在濱河造成了極大的恐慌寻咒,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颈嚼,死亡現(xiàn)場離奇詭異毛秘,居然都是意外死亡,警方通過查閱死者的電腦和手機阻课,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門叫挟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人限煞,你說我怎么就攤上這事抹恳。” “怎么了晰骑?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵适秩,是天一觀的道長。 經(jīng)常有香客問我硕舆,道長秽荞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任抚官,我火速辦了婚禮扬跋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凌节。我一直安慰自己钦听,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布倍奢。 她就那樣靜靜地躺著朴上,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卒煞。 梳的紋絲不亂的頭發(fā)上痪宰,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音,去河邊找鬼衣撬。 笑死乖订,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的具练。 我是一名探鬼主播乍构,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扛点!你這毒婦竟也來了哥遮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤占键,失蹤者是張志新(化名)和其女友劉穎昔善,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畔乙,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年翩概,在試婚紗的時候發(fā)現(xiàn)自己被綠了牲距。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钥庇,死狀恐怖牍鞠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情评姨,我是刑警寧澤难述,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站吐句,受9級特大地震影響胁后,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嗦枢,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一攀芯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧文虏,春花似錦侣诺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至丸相,卻和暖如春搔确,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工妥箕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滥酥,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓畦幢,卻偏偏與公主長得像坎吻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宇葱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354