爬取簡書用戶的動態(tài)

0 前言


我在簡書關(guān)注的一位大佬發(fā)了一篇文章,文章大意是一個簡書用戶假意約稿,其實是想讓別人關(guān)注微信公眾號,大佬寫代碼去爬取該用戶的動態(tài),發(fā)現(xiàn)該用戶真的是在騙人。

具體細(xì)節(jié)請看文章:http://m.itdecent.cn/p/35a85ee14f7b

我把大佬的代碼復(fù)制到本地運(yùn)行,發(fā)現(xiàn)沒有把第一頁的動態(tài)保存下來,于是添加了一點點代碼把代碼完善了一下。

1 環(huán)境說明


Win10 系統(tǒng)下 Python3,編譯器是 Pycharm,需要安裝 requests、lxml這兩個包。

這里只介紹 Pycharm 安裝第三方包的方法。

2 相關(guān)代碼


import requests
from lxml import etree

my_header = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"

res = requests.get(url='http://m.itdecent.cn/users/93022c8a49c5/timeline', headers={'user-agent': my_header})

if '大神帶我來搬磚' in res.text:
    print('找到了')
page = etree.HTML(res.text)
last_li = page.xpath('''//ul[@class="note-list"]/li[last()]''')[0]
max_id = int(last_li.get('id').split('-')[1]) - 1

file = open("activity.txt",'w',encoding='utf-8')
file.write(res.text)
file.write("\n")

page = 2
while True:
    res = requests.get(url='http://m.itdecent.cn/users/93022c8a49c5/timeline?max_id=%s&page=%s' %(max_id,page),
        headers={'user-agent': my_header, 'X-INFINITESCROLL':'true'})

    last_li = etree.HTML(res.text).xpath('''/html/body/li[last()]''')[0]
    max_id = int(last_li.get('id').split('-')[1]) - 1
    page = page + 1
    file.write(res.text)
    file.write("\n")
    if '加入了簡書' in res.text:
        print('end')
        break

file.close()

這里我爬的是我簡書賬號的動態(tài),如果想爬取別人的動態(tài)需要去拿到動態(tài)鏈接,進(jìn)去他的主頁,在動態(tài)那點擊一下鼠標(biāo)右鍵,然后復(fù)制鏈接地址或者在新標(biāo)簽頁打開鏈接



替換一下圖中圈住的鏈接


如果想搜索的不是『大神帶我來搬磚』可以自行替換

實際運(yùn)行結(jié)果如圖



還有一個名字是 activity.txt 的文件在和代碼同一級的文件目錄下,打開進(jìn)行搜索就是了。


3 相關(guān)說明


大佬的文章鏈接

感謝大佬『大神帶我來搬磚』寫的代碼,感謝大佬同意我水一篇文章

在我寫完這篇文章的時候才知道大佬又寫了一篇,不過實現(xiàn)方式和代碼有所不同,這里也給出鏈接

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容