前幾天,被老板拉去說要我去抓取大眾點評某家店的數據,當然被我義正言辭的拒絕了,理由是我不會。。。但我的反抗並沒有什么卵用,所以還是乖乖去查資料,因為我是從事php工作的,首先找的就是php的網絡爬蟲源碼,在我的不懈努力下,終於找到phpspider,打開phpspider開發文檔首頁我就被震驚了,標題《我用爬蟲一天時間“偷了”知乎一百萬用戶,只為證明PHP是世界上最好的語言 》,果然和我預料的一樣,php就是世界上最好的語言。廢話少說,下面開始學習使用。
首先看的是提供的一個demo,代碼如下:
$configs = array( 'name' => '糗事百科', 'domains' => array( 'qiushibaike.com', 'www.qiushibaike.com' ), 'scan_urls' => array( 'http://www.qiushibaike.com/' ), 'content_url_regexes' => array( "http://www.qiushibaike.com/article/\d+" ), 'list_url_regexes' => array( "http://www.qiushibaike.com/8hr/page/\d+\?s=\d+" ), 'fields' => array( array( // 抽取內容頁的文章內容 'name' => "article_content", 'selector' => "//*[@id='single-next-link']", 'required' => true ), array( // 抽取內容頁的文章作者 'name' => "article_author", 'selector' => "//div[contains(@class,'author')]//h2", 'required' => true ), ), ); $spider = new phpspider($configs); $spider->start();
每項具體的信息,可以去 https://doc.phpspider.org/demo-start.html 查看,哪里比較詳細,這里只說下我走的彎路,
domains是定義采集的域名,只在該域名下采集,
content_url_regexes是采集的內容頁,使用chrome查看網頁源碼,然后使用selector選擇器定位,selector使用xpath格式定位參數,當然也可以用css來選擇。
list_url_regexes列表頁,每個列表頁抓取多條content_url_regexes的url循環采集。
還有一些其他參數沒有列出來,例如:
'max_try' => 5, 'export' => array( 'type' => 'db', 'conf' => array( 'host' => 'localhost', 'port' => 3306, 'user' => 'root', 'pass' => 'root', 'name' => 'demo', ), 'table' => '360ky', ),
max_try 同時工作的爬蟲任務數。
export采集數據存儲,有兩種格式,一種是寫到數據庫中,一種是直接生成.csv格式文件。
只要url規則寫的對,就可以運行,不用管框架里面的封裝。當然,此框架只能在php-cli命令行下運行,所以使用前要先配置環境變量,或者cd到php安裝路徑運行。
最后成功采集到大眾點評某點的一千多條數據。