Python 是一門廣泛應(yīng)用在數(shù)據(jù)處理、機(jī)器學(xué)習(xí)、Web 開發(fā)等領(lǐng)域的編程語言,其強(qiáng)大的網(wǎng)絡(luò)爬蟲功能可以實(shí)現(xiàn)爬取各種網(wǎng)站數(shù)據(jù)。下面將介紹如何使用 Python 爬取知乎用戶數(shù)據(jù)。
# 導(dǎo)入所需模塊 import requests from lxml import etree import json # 設(shè)置請求頭 headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36', } # 知乎用戶首頁鏈接 url = 'https://www.zhihu.com/people/username/activities' # 發(fā)送 GET 請求獲取頁面數(shù)據(jù) html = requests.get(url, headers=headers).text # 使用 lxml 解析頁面數(shù)據(jù) content = etree.HTML(html) # 獲取用戶 ID 和用戶名 user_id = content.xpath('//div[@class="ProfileHeader-name"]/text()')[0] username = content.xpath('//div[@class="ProfileHeader-headline"]/text()')[0] # 獲取用戶關(guān)注、粉絲和文章數(shù) data = content.xpath('//div[@class="Profile-sideColumnItemValue"]/text()') following, followers, articles = int(data[0]), int(data[1]), int(data[2]) # 將數(shù)據(jù)存儲(chǔ)為 JSON 格式 result = {'user_id': user_id, 'username': username, 'following': following, 'followers': followers, 'articles': articles} print(json.dumps(result, ensure_ascii=False))
通過上述代碼,我們可以獲取知乎用戶的基本信息,包括用戶 ID、用戶名、關(guān)注、粉絲和文章數(shù),并將其存儲(chǔ)為 JSON 格式。
需要注意的是,由于知乎有反爬機(jī)制,爬取知乎用戶數(shù)據(jù)時(shí)需要設(shè)置請求頭,模擬瀏覽器進(jìn)行訪問。此外,在爬取時(shí)要遵守網(wǎng)站的爬取規(guī)則,如不要過于頻繁地進(jìn)行請求。