最近一直在看Python的基礎(chǔ)語法知識(shí),五一假期手癢癢想練練徒爹,正好《人民的名義》剛結(jié)束苍柏,于是決定扒一下頭條上面的人名的名義文章,試試技術(shù)同時(shí)可以集中看一下大家的腦洞也是極好的竣稽。
首先,我們先打開頭條的網(wǎng)頁版霍弹,在右上角搜索框輸入關(guān)鍵詞毫别,通過chrome調(diào)試工具,我們定位到頭條的search欄調(diào)用的的API為:
http://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E4%BA%BA%E6%B0%91%E7%9A%84%E5%90%8D%E4%B9%89&autoload=true&count=20&cur_tab=1
其返回的數(shù)據(jù)是標(biāo)準(zhǔn)的json庞萍,所有的相關(guān)文章鏈接在data中拧烦,key值為article_url忘闻,好準(zhǔn)備工作完成钝计,我們開始動(dòng)手coding。
首先,我們構(gòu)造頭條必要的search條件:
query_data = {'offset':offset,'format':'json','keyword':'人民的名義','autoload':'true','count':20,# 每次返回 20 篇文章'cur_tab':1}
當(dāng)然私恬,我們除了search參數(shù)之外债沮,還需要必要的header頭信息,仔細(xì)查看之后我們可以看到本鸣,
我們只選取其中必要的信息疫衩,不放cookie;
然后是編碼查詢條件
其中_get_query_string方法將query_data編碼荣德;
拿到article_req之后解析獲取當(dāng)前搜索結(jié)果的所有文章鏈接闷煤,實(shí)現(xiàn)如下:
獲取到文章鏈接之后,我們打開每一個(gè)url進(jìn)行解析涮瞻。
此處鲤拿,我們簡(jiǎn)單地對(duì)article_content進(jìn)行解析,取出文章標(biāo)題署咽、內(nèi)容和圖片近顷。
解析完成之后,我們將內(nèi)容保存到mongo中宁否,方便后續(xù)的取數(shù)分析窒升。
然后我們運(yùn)行一下程序,
運(yùn)行程序的時(shí)候我們發(fā)現(xiàn)慕匠,通過search來搜索最后得到的文章數(shù)量有限饱须,只有幾十篇文章,估計(jì)是頭條的限制台谊。
下一篇我們將介紹如何通過一篇文章和相關(guān)推薦進(jìn)行鏈?zhǔn)脚廊∷械年P(guān)聯(lián)推薦文章冤寿。