In [2]:
import csv
import requests
import re
import time
def main(page):
url = f'https://tieba.baidu.com/p/7882177660?pn={page}'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
resp = requests.get(url, headers=headers)
html = resp.text
# 评论内容
comments = re.findall('style="display:;"> (.*?)</div>', html)
# 评论用户
users = re.findall('class="p_author_name j_user_card" href=".*?" target="_blank">(.*?)</a>', html)
# 评论时间
comment_times = re.findall('楼</span><span class="tail-info">(.*?)</span><div', html)
for u, c, t in zip(users, comments, comment_times):
# 筛选数据,过滤掉异常数据
if 'img' in c or 'div' in c or len(u) > 50:
continue
csvwriter.writerow((u, t, c))
print(u, t, c)
print(f'第{page}页爬取完毕')
if __name__ == '__main__':
with open('01.csv', 'a', encoding='utf-8')as f:
csvwriter = csv.writer(f)
csvwriter.writerow(('评论用户', '评论时间', '评论内容'))
for page in range(1, 8): # 爬取前7页的内容
main(page)
time.sleep(2)
FLAME 2022-06-18 12:34 克莱 第1页爬取完毕 贴吧用户_aS7JP2M 2022-06-18 17:50 这竟然也能去讨论起来 第2页爬取完毕 2022 2022-06-18 20:11 这一波我站哈登<br>他一出场 对面直接少一两个人 第3页爬取完毕 一个小石头丨<img src="//tb1.bdstatic.com/tb/cms/nickemoji/2-17.png" class="nicknameEmoji" style="width:13px;height:13px"/> 2022-06-18 21:29 什么年头克莱都能和哈登比了 第4页爬取完毕 mlhappy100 2022-06-18 22:46 哈登是核心打法 克莱打无球的 为啥不用库里比呢? 第5页爬取完毕 贴吧用户_0NG7925 2022-06-18 23:32 克莱历史地位等于格林 第6页爬取完毕 古河渚の团子 2022-06-19 00:59 兄弟你什么冠军?<img class="BDE_Smiley" width="30" height="30" changedsize="false" src="https://gsp0.baidu.com/5aAHeD3nKhI2p27j8IqW0jdnxx1xbK/tb/editor/images/client/image_emoticon24.png" > 第7页爬取完毕
In [ ]: