用python写一个完整的爬虫代码,爬虫可以爬取微博的图片、内容、点赞数、评论数,并将内容、点赞数、评论数保存为xls格式
时间: 2024-06-09 19:08:16 浏览: 167
详解用python写网络爬虫-爬取新浪微博评论
以下是一个基于Python的微博爬虫代码,可以爬取微博的图片、内容、点赞数、评论数,并将内容、点赞数、评论数保存为xls格式:
```python
import requests
from bs4 import BeautifulSoup
import xlwt
# 微博ID
weibo_id = '123456'
# 构造请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
# 访问微博页面
url = 'https://m.weibo.cn/api/container/getIndex?type=uid&value=' + weibo_id
response = requests.get(url, headers=headers)
data = response.json()
# 解析微博页面
cards = data['data']['cards']
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('微博数据')
ws.write(0, 0, '内容')
ws.write(0, 1, '点赞数')
ws.write(0, 2, '评论数')
ws.write(0, 3, '图片链接')
row = 1
for card in cards:
if 'mblog' in card:
mblog = card['mblog']
text = mblog['text']
attitudes_count = mblog['attitudes_count']
comments_count = mblog['comments_count']
pics = mblog.get('pics')
pic_urls = ''
if pics:
for pic in pics:
pic_url = pic['large']['url']
pic_urls += pic_url + '\n'
ws.write(row, 0, text)
ws.write(row, 1, attitudes_count)
ws.write(row, 2, comments_count)
ws.write(row, 3, pic_urls)
row += 1
# 保存数据到xls文件
wb.save('weibo_data.xls')
```
需要注意的是,这个代码只能爬取微博移动端页面的数据,如果要爬取PC端页面的数据,需要对代码进行修改。此外,这个代码只能爬取一页的数据,如果要爬取多页的数据,需要对代码进行循环处理。
阅读全文