Python實現(xiàn)抖音熱搜定時爬取功能
大家好,我是丁小杰。
上次和大家分享了Python定時爬取微博熱搜示例介紹,堪稱摸魚神器,一個熱榜不夠看?今天我們再來爬取一下抖音熱搜榜,感興趣的小伙伴可以自己動手嘗試一下哦。
抖音熱搜榜
鏈接:https://tophub.today/n/K7GdaMgdQy

整個熱榜共50條數(shù)據(jù),本次爬取的內(nèi)容:排名、熱度、標題、鏈接。
requests 爬取
requests 是一種非常簡單的方法,由于該頁面沒有反爬措施,所以直接get 請求頁面即可。
import?requests
import?pandas?as?pd
headers?=?{
????'User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/94.0.4606.54?Safari/537.36'
}
url?=?'https://tophub.today/n/K7GdaMgdQy'
page_text?=?requests.get(url=url,?headers=headers).text
page_text

可以看到,只需要幾行代碼,數(shù)據(jù)就很輕松地獲取到了。
selenium 爬取
將selenium設置為無頭瀏覽器,打開指定url獲取頁面數(shù)據(jù)。
from?selenium?import?webdriver
option?=?webdriver.ChromeOptions()
option.add_argument('--headless')
driver?=?webdriver.Chrome(options=option)
url?=?'https://tophub.today/n/K7GdaMgdQy'
driver.get(url)
page_text?=?driver.page_source
兩種爬取方法都能夠成功獲取到數(shù)據(jù),但requests相對簡潔,整個代碼運行速度也更快,如果頁面數(shù)據(jù)不是動態(tài)加載的話,用requests相對方便。
數(shù)據(jù)解析
現(xiàn)在用lxml庫解析我們爬取的數(shù)據(jù),并保存到excel中。
tree?=?etree.HTML(page_text)
tr_list?=?tree.xpath(
????'//*[@id="page"]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr')
df?=?pd.DataFrame(columns=['排名',?'熱度',?'標題',?'鏈接'])
for?index,?tr?in?enumerate(tr_list):
????hot?=?tr.xpath('./td[3]/text()')[0]
????title?=?tr.xpath('./td[2]/a/text()')[0]
????article_url?=?tr.xpath('./td[2]/a/@href')[0]
????df?=?df.append({
????????'排名':?index?+?1,
????????'熱度':?hot,
????????'標題':?title,
????????'鏈接':?article_url},?ignore_index=True)
df['鏈接']?=?'https://tophub.today'?+?df['鏈接']
df
運行結(jié)果

設置定時運行
至此,爬取代碼已經(jīng)完成,想要實現(xiàn)每小時自動運行代碼,可以使用任務計劃程序。
打開任務計劃程序,【創(chuàng)建任務】

輸入名稱,名稱隨便起就好。

選擇【觸發(fā)器】>>【新建】>>【設置觸發(fā)時間】

選擇【操作】>>【新建】>>【選擇程序】

最后確認即可。到時間就會自動運行,或者右鍵任務手動運行。
這就是今天要分享的內(nèi)容,整體難度不大,希望大家能夠有所收獲,文章中的代碼拼接起來就可以運行!
以上就是Python實現(xiàn)抖音熱搜定時爬取功能的詳細內(nèi)容,更多關(guān)于Python抖音熱搜爬取的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python中的對數(shù)log函數(shù)表示及用法
在本篇文章里小編給大家整理了一篇關(guān)于python中的對數(shù)log函數(shù)表示及用法,有需要的朋友們可以學習下。2020-12-12

