前幾天,被老闆拉去說要我去抓取大衆點評某家店的數據,固然被我義正言辭的拒絕了,理由是我不會。。。但個人反抗並無什麼卵用,因此仍是乖乖去查資料,由於我是從事php工做的,首先找的就是php的網絡爬蟲源碼,在個人不懈努力下,終於找到phpspider,打開phpspider開發文檔首頁我就被震驚了,標題《我用爬蟲一天時間「偷了」知乎一百萬用戶,只爲證實PHP是世界上最好的語言 》,果真和我預料的同樣,php就是世界上最好的語言。廢話少說,下面開始學習使用。php
首先看的是提供的一個demo,代碼以下:css
$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 查看,哪裏比較詳細,這裏只說下我走的彎路,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安裝路徑運行。最後成功採集到大衆點評某點的一千多條數據。