R爬蟲實(shí)踐—抓取國(guó)自然基金信息【下篇】

R爬蟲實(shí)踐—抓取國(guó)自然基金信息【上篇】和R爬蟲實(shí)踐—抓取國(guó)自然基金信息【中篇】都是對(duì)國(guó)自然數(shù)據(jù)的局部抓取,突然發(fā)現(xiàn)費(fèi)這勁也是蠻傻的尺碰,直接爬取所有信息不是更省事嘛挣棕,哎,有時(shí)候真的不能怪別人說(shuō)自己軸了亲桥。

首先洛心,打開(kāi)網(wǎng)頁(yè)http://fund.zsci.com.cn/,在學(xué)科分類中選擇醫(yī)學(xué)科學(xué)部题篷,批準(zhǔn)年度選擇2019皂甘,得到約8000多條國(guó)自然信息。

image

具體如何爬鹊看铡偿枕?

爬取策略上和上兩篇有不同之處,之前都是直接爬取下圖左側(cè)中的信息户辫,這次想讓信息更為全面渐夸,進(jìn)入每條國(guó)自然詳情頁(yè)面進(jìn)行的信息抓取。

image

首先渔欢,獲取首頁(yè)國(guó)自然信息的詳情頁(yè)鏈接墓塌,

#進(jìn)入總網(wǎng)頁(yè)第一頁(yè)
url1<-c("http://fund.zsci.com.cn/Index/index/xk_name/%E5%8C%BB%E5%AD%A6%E7%A7%91%E5%AD%A6%E9%83%A8/xkid/3416/start_year/2019/end_year/2019/xmid/0/search/1/p/1.html")
#讀取網(wǎng)頁(yè)內(nèi)容
web <- read_html(url1,encoding = "utf-8")
#獲取第一頁(yè)所有記錄的網(wǎng)址信息
link <- web %>% html_nodes('ul.layuiadmin-card-status a') %>% html_attr("href")  
link <- paste0("http://fund.zsci.com.cn/",link)
link

然后,獲取檢索結(jié)果最大頁(yè)碼奥额,

#進(jìn)入總網(wǎng)頁(yè)第一頁(yè)
url1<-c("http://fund.zsci.com.cn/Index/index/xk_name/%E5%8C%BB%E5%AD%A6%E7%A7%91%E5%AD%A6%E9%83%A8/xkid/3416/start_year/2019/end_year/2019/xmid/0/search/1/p/1.html")
#讀取網(wǎng)頁(yè)內(nèi)容
web <- read_html(url1,encoding = "utf-8")
lastpage_link <- web %>% html_nodes("div.layui-box a") %>% html_attr("href")
lastpage_link <- paste0("http://fund.zsci.com.cn/",lastpage_link[length(lastpage_link)])
#獲取總頁(yè)數(shù)
lastpage_web <- read_html(lastpage_link,encoding = "utf-8")
lastpage_number <-  lastpage_web %>% html_nodes("div.layui-box span.current") %>% html_text() %>% as.integer()

最后苫幢,正式開(kāi)始爬取~~~ 具體思路過(guò)程:先爬取首頁(yè)信息的詳情頁(yè)鏈接———利用循環(huán)獲取首頁(yè)20個(gè)詳情頁(yè)面內(nèi)的信息——然后開(kāi)始第二頁(yè)(如此循環(huán)往復(fù))——直到最后一頁(yè)的最后一條信息。


i=1
site <- 'http://fund.zsci.com.cn/Index/index/xk_name/%E5%8C%BB%E5%AD%A6%E7%A7%91%E5%AD%A6%E9%83%A8/xkid/3416/start_year/2019/end_year/2019/xmid/0/search/1/p/'
#創(chuàng)建一個(gè)空的數(shù)據(jù)框用來(lái)存儲(chǔ)抓取的數(shù)據(jù)
results <- data.frame(ID="基金號(hào)",Title="題目",Author="負(fù)責(zé)人",Position="職稱",Department="申請(qǐng)單位",
                      Type="研究類型",Project="項(xiàng)目批準(zhǔn)號(hào)",Date="批準(zhǔn)年度",Money="金額",
                      dateline="研究期限",Keywords_chinese="中文關(guān)鍵詞",Keywords_english="英文關(guān)鍵詞")

for(i in 1:lastpage_number){
  url <-paste0(site,i,".html")
  web <- read_html(url)
  #獲取第一頁(yè)所有記錄的網(wǎng)址信息
  link <- web %>% html_nodes('ul.layuiadmin-card-status a') %>% html_attr("href")  #獲取了負(fù)責(zé)人和單位信息
  link <- paste0("http://fund.zsci.com.cn/",link)

  a=1
  for (a in 1:length(link)) {
    link_web <- read_html(link[a],encoding = "utf-8")
    #---獲得基金標(biāo)題---
    Title <- link_web %>% html_nodes('div h2') %>% html_text() # 標(biāo)題內(nèi)容解析
    Title
    #---獲得眾多信息---
    Information <-  link_web %>% html_nodes('div.layui-table-body div') %>% html_text()
    Information
    #---獲取基金ID號(hào)---
    ID <- Information[seq(3,length(Information),11)]
    ID
    #---獲取負(fù)責(zé)人信息---
    Author <-  Information[seq(4,length(Information),11)]
    Author
    #---負(fù)責(zé)人職稱---
    Position <- Information[seq(5,length(Information),11)]
    Position 
    #---獲得申請(qǐng)單位---
    Department <-  Information[seq(6,length(Information),11)]
    Department
    #---獲取研究類型---
    jijintype <-  Information[seq(8,length(Information),11)]
    jijintype
    #---獲得項(xiàng)目號(hào)---
    Project <-  Information[seq(1,length(Information),11)]
    Project
    #---獲取批準(zhǔn)時(shí)間---
    Date <-  Information[seq(2,length(Information),11)]
    Date
    #---獲取基金金額---
    Money <- Information[seq(7,length(Information),11)]
    Money 
    #---獲取研究期限---
    dateline <- Information[seq(9,length(Information),11)]
    dateline
    #---獲取關(guān)鍵詞---
    Keywords_chinese <- Information[seq(10,length(Information),11)]
    Keywords_chinese
    Keywords_english <- Information[seq(11,length(Information),11)]
    Keywords_english

    result <- data.frame(ID=ID,Title=Title,Author=Author,Position=Position,Department=Department,
                         Type=jijintype,Project=Project,Date=Date,Money=Money,dateline=dateline,
                         Keywords_chinese=Keywords_chinese,Keywords_english=Keywords_english)
    #合并某一頁(yè)面數(shù)據(jù)成數(shù)據(jù)框
    results <- rbind(results,result)
  }
}

最終爬取結(jié)果如下垫挨,由于信息較多韩肝,爬取速度會(huì)慢一些。

image

往期回顧
R爬蟲在工作中的一點(diǎn)妙用
R爬蟲必備基礎(chǔ)——HTML和CSS初識(shí)
R爬蟲必備基礎(chǔ)——靜態(tài)網(wǎng)頁(yè)+動(dòng)態(tài)網(wǎng)頁(yè)
R爬蟲必備——rvest包的使用
R爬蟲必備基礎(chǔ)——CSS+SelectorGadget
R爬蟲必備基礎(chǔ)—Chrome開(kāi)發(fā)者工具(F12)
R爬蟲必備基礎(chǔ)—HTTP協(xié)議
R爬蟲必備—httr+POST請(qǐng)求類爬蟲(網(wǎng)易云課堂)
R爬蟲必備基礎(chǔ)—rvest為什么不用于動(dòng)態(tài)網(wǎng)頁(yè)九榔?
R爬蟲必備——httr+GET請(qǐng)求類爬蟲(解螺旋課程)
R爬蟲實(shí)戰(zhàn)—抓取PubMed文章的基本信息
R爬蟲實(shí)踐—抓取國(guó)自然基金信息【上篇】
R爬蟲實(shí)踐—抓取國(guó)自然基金信息【中篇】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哀峻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哲泊,更是在濱河造成了極大的恐慌剩蟀,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件切威,死亡現(xiàn)場(chǎng)離奇詭異育特,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)先朦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門缰冤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)槽袄,“玉大人,你說(shuō)我怎么就攤上這事锋谐。” “怎么了截酷?”我有些...
    開(kāi)封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵涮拗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我迂苛,道長(zhǎng)三热,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任三幻,我火速辦了婚禮就漾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘念搬。我一直安慰自己抑堡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布朗徊。 她就那樣靜靜地躺著首妖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爷恳。 梳的紋絲不亂的頭發(fā)上有缆,一...
    開(kāi)封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音温亲,去河邊找鬼棚壁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛栈虚,可吹牛的內(nèi)容都是我干的袖外。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼魂务,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼在刺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起头镊,我...
    開(kāi)封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蚣驼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后相艇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體颖杏,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年坛芽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了留储。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翼抠。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖获讳,靈堂內(nèi)的尸體忽然破棺而出阴颖,到底是詐尸還是另有隱情,我是刑警寧澤丐膝,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布量愧,位于F島的核電站,受9級(jí)特大地震影響帅矗,放射性物質(zhì)發(fā)生泄漏偎肃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一浑此、第九天 我趴在偏房一處隱蔽的房頂上張望累颂。 院中可真熱鬧,春花似錦凛俱、人聲如沸紊馏。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘦棋。三九已至,卻和暖如春暖哨,著一層夾襖步出監(jiān)牢的瞬間赌朋,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工篇裁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沛慢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓达布,卻偏偏與公主長(zhǎng)得像团甲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子黍聂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容