使用php蓝天采集器抓取今日头条ajax的文章内容
今日頭條的數據都是ajax加載顯示的,按照正常的url是抓取不到數據的,需要分析出加載出址,我們以 https://www.toutiao.com/search/?keyword=%E6%96%B0%E9%97%BB 為例來采集列表的文章
用谷歌瀏覽器打開鏈接,右鍵點擊“審查”在控制臺切換至network并點擊XHR,這樣就可以過濾圖片、文件等等不必要的請求只看頁面內容的請求
由于頁面是ajax加載的,所以將頁面拉至最底部,會自動加載出更多文章,這時候控制臺抓取到的鏈接就是我們真正需要的列表頁鏈接:
https://www.toutiao.com/search_content/?offset=20&format=json&keyword=%E6%96%B0%E9%97%BB&autoload=true&count=20&cur_tab=1&from=search_tab
在藍天采集中創建一個任務
創建完畢點擊“采集設置”,在“起始頁網址”中填入上面抓取到的鏈接
接下來匹配內容頁網址,頭條的文章網址格式是https://www.toutiao.com/group/數字/
點擊“內容頁網址”編寫“匹配內容網址”規則:
(?<content1>http://toutiao.com/group/\d+/)
這是個正則規則,意思就是把匹配的網址裝進捕獲組content1中,然后在下面填寫[內容1] 即對應上面的content1 就可獲取到內容頁鏈接
可以點擊測試查看是否成功抓取到了鏈接
抓取成功就可以開始獲取內容了
點擊“獲取內容”在字段列表右邊可以添加默認的字段,如標題、正文等都可以智能識別,如需精準還可以自行編輯字段,支持正則、xpath、json等匹配內容
我們需要抓取文章的標題和正文,由于是ajax顯示的所以要寫規則匹配出內容,分析篇源碼:https://www.toutiao.com/a6358823350874145025/ ,找到文章位置
標題規則:articleInfo\s:\s{\stitle:\s'[內容1]',
正文規則:content\s:\s'[內容1]',\s*groupId
規則必須保證唯一性,不然會匹配到其他內容上去,將規則添加到字段中,獲取方式選規則匹配:
規則編寫完后點擊保存,點擊“測試”看看效果如何
規則無誤,抓取正常,抓取到的數據還可以發布到cms系統、直接數據庫入庫、保存為excel文件等,點擊底部導航條的“發布設置”即可,好了今日頭條的采集到這里就結束了,大家不妨動手試試!
轉載于:https://blog.51cto.com/10051155/2113774
總結
以上是生活随笔為你收集整理的使用php蓝天采集器抓取今日头条ajax的文章内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Licia:最全最实用的 JavaScr
- 下一篇: 第四章:Spring AOP