關於php網絡爬蟲phpspider。


       前幾天,被老板拉去說要我去抓取大眾點評某家店的數據,當然被我義正言辭的拒絕了,理由是我不會。。。但我的反抗並沒有什么卵用,所以還是乖乖去查資料,因為我是從事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安裝路徑運行。
最后成功采集到大眾點評某點的一千多條數據。

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM