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)方式和代碼有所不同,這里也給出鏈接