乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      R語言網(wǎng)絡爬蟲經(jīng)驗

       生物_醫(yī)藥_科研 2019-02-18

      1

      讀取

      1#假設url為網(wǎng)頁
      2library(rvest)
      3read_html(rul)->website
      4#該方法對于html/shtml都好用
      5
      6#可是網(wǎng)頁為.aspx時候這個方法不行,改為
      7library(httr)
      8GET(url,handle=handle(url)) %>%
      9 content(at='parse') ->website


      2

      進度條設置

      在爬蟲的時候經(jīng)常爬到一個時候就自己斷了,問題是我們還看不出來是斷了還是沒有斷,

      因此需要往里面加入進度條,當進度條卡住的時候,就可以停止自己的程序在斷點重新跑


       1 library(tcltk)  
      2u <- 1:2000  
      3
      4#開啟進度條  
      5
      6pb <- tkProgressBar('進度','已完成 %'0100)  
      7
      8for(i in u) {  
      9   info<- sprintf('已完成 %d%%', round(i*100/length(u)))  
      10   setTkProgressBar(pb, i*100/length(u), sprintf('進度 (%s)', info),info)  
      11}     
      12#關閉進度條  
      13close(pb) 


      3

      時間間隔設置

      就算有進度條,程序隔一段時間還是會自動退出,有的網(wǎng)站設置了最長訪問時間,有的會拒絕請求。為了打破這種機制,在循環(huán)中插入人工時滯,雖然時間會長一點,但是從自動化角度上看,其實還是節(jié)省了時間。時間的設置需要多試幾次,直到最后跑很久都不會斷掉為止。


      1 System.time()  #中間放進去的時間單位為秒


      4

      CSS vs Xpath

      使用rvest包的時候,html_nodes函數(shù)可以使用CSS選擇器和Xpath兩種方式選擇節(jié)點。

      大部分情況下,CSS選擇器方便快捷,實在是利器;但是在解決復雜性問題的時候(比如我需要找到包含符合一定規(guī)律的節(jié)點的父節(jié)點的父節(jié)點的最后一個節(jié)點的某個元素的時候),只能使用Xpath進行設置尋找。注意CSS和Xpath雖然可以混用,但是Xpath一定要在CSS之前使用,因為Xpath才能夠得到一系列的節(jié)點及其相互關系,而CSS則直接給你一些節(jié)點,無法進一步進行更多的操作。


      5

      正則表達式

      實在找不到什么好的關系的時候,不要忘了用正則表達式。stringr包的str_extract配合str_sub函數(shù)可以找到大部分問題。


      6

      斷點繼續(xù)的辦法

      用data.frame數(shù)據(jù)結(jié)構(gòu)不斷進行rbind,循環(huán)中的i,j,k注意要分開標,因為都是全局變量。一般來講以i作為標準比較好,也要看解決問題的層次。重復使用上層循環(huán)得到的數(shù)據(jù)是會有重復的,沒關系,我們有unique

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多