1. 程式人生 > >用php藍天採集抓取今日頭條ajax的文章內容

用php藍天採集抓取今日頭條ajax的文章內容

今日頭條的資料都是ajax載入顯示的,按照正常的url是抓取不到資料的,需要分析出加載出址,我們以 https://www.toutiao.com/search/?keyword=%E6%96%B0%E9%97%BB  為例來採集列表的文章

用谷歌瀏覽器開啟連結,右鍵點選“審查”在控制檯切換至network並點選XHR,這樣就可以過濾圖片、檔案等等不必要的請求只看頁面內容的請求


由於頁面是ajax載入的,所以將頁面拉至最底部,會自動加載出更多文章,這時候控制檯抓取到的連結就是我們真正需要的列表頁連結:

在藍天採集中建立一個任務


建立完畢點選“採集設定”,在“起始頁網址”中填入上面抓取到的連結


接下來匹配內容頁網址,頭條的文章網址格式是https://www.toutiao.com/group/數字/

點選“內容頁網址”編寫“匹配內容網址”規則:

(?<content1>http://toutiao.com/group/\d+/)

這是個正則規則,意思就是把匹配的網址裝進捕獲組content1中,然後在下面填寫[內容1] 即對應上面的content1 就可獲取到內容頁連結


可以點選測試檢視是否成功抓取到了連結


抓取成功就可以開始獲取內容了

點選“獲取內容”在欄位列表右邊可以新增預設的欄位,如標題、正文等都可以智慧識別,如需精準還可以自行編輯欄位,支援正則、xpath、json等匹配內容


標題規則:articleInfo\s*:\s*{\s*title:\s*'[內容1]',

正文規則:content\s*:\s*'[內容1]',\s*groupId

規則必須保證唯一性,不然會匹配到其他內容上去,將規則新增到欄位中,獲取方式選規則匹配:



規則編寫完後點擊儲存,點選“測試”看看效果如何


規則無誤,抓取正常,抓取到的資料還可以釋出到cms系統、直接資料庫入庫、儲存為excel檔案等,點選底部導航條的“釋出設定”即可,好了今日頭條的採集到這裡就結束了,大家不妨動手試試!