请使用python爬取微博数据,以评论、点赞、转发、粉丝、时间、状态、正文等作为数据特征。
时间: 2023-11-29 09:35:07 浏览: 100
微博数据爬取demo ,解析微博评论数,点赞数,图片链接等
好的,这里提供一份爬取微博数据的代码,需要使用到 requests 和 BeautifulSoup 库。
```python
import requests
from bs4 import BeautifulSoup
# 微博账号的个人主页链接
url = 'https://weibo.com/u/1234567890'
# 微博账号的cookie值
cookie = 'your_cookie_value'
# 请求头信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 获取微博页面信息
res = requests.get(url, headers=headers, cookies={'Cookie': cookie})
soup = BeautifulSoup(res.content, 'html.parser')
# 获取微博状态列表
status_list = soup.select('.WB_feed_detail')
for status in status_list:
# 获取时间信息
time = status.select_one('.WB_detail > .WB_from.S_txt2 > a:nth-of-type(1)').text.strip()
# 获取微博正文信息
text = status.select_one('.WB_text.W_f14').text.strip()
# 获取点赞数信息
like_num = status.select_one('.WB_handle > .WB_handle_a > .pos > span:nth-of-type(1)').text.strip()
# 获取转发数信息
repost_num = status.select_one('.WB_handle > .WB_handle_a > .pos > span:nth-of-type(2)').text.strip()
# 获取评论数信息
comment_num = status.select_one('.WB_handle > .WB_handle_a > .pos > span:nth-of-type(3)').text.strip()
# 获取粉丝数信息
fans_num = soup.select_one('.tb_counter > .S_line1:nth-of-type(1) > strong').text.strip()
# 打印结果
print('时间:', time)
print('正文:', text)
print('点赞数:', like_num)
print('转发数:', repost_num)
print('评论数:', comment_num)
print('粉丝数:', fans_num)
print('-------------------------')
```
需要注意的是,由于微博的反爬机制比较强,需要使用账号登录后获取到的 cookie 值进行请求。另外,该代码只能获取到该账号发布的微博信息,无法获取到该账号转发、评论等操作的信息。如需获取更多信息,需要模拟登录微博并通过接口获取。
阅读全文