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