用python写一个完整的爬虫代码,爬虫可以爬取微博的图片、内容、点赞数、评论数,并将内容、点赞数、评论数保存为xls格式
时间: 2024-06-09 20:08:17 浏览: 91
好的,下面是一个爬取微博的图片、内容、点赞数、评论数并将其保存为xls格式的完整爬虫代码:
```python
import requests
import xlwt
from bs4 import BeautifulSoup
# 设置请求头
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'}
# 设置爬取的微博地址
url = 'https://weibo.com/xxxxxxxxx'
# 发送请求并获取页面源码
res = requests.get(url, headers=headers)
html = res.text
# 解析页面源码
soup = BeautifulSoup(html, 'html.parser')
# 获取微博列表
weibo_list = soup.select('div.WB_feed_detail')
# 创建工作簿并添加工作表
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('微博数据')
# 设置表头
worksheet.write(0, 0, '内容')
worksheet.write(0, 1, '点赞数')
worksheet.write(0, 2, '评论数')
# 遍历微博列表并获取数据
for i, weibo in enumerate(weibo_list):
# 获取微博内容
content = weibo.select_one('div.WB_text').get_text(strip=True)
# 获取微博点赞数
like_count = weibo.select_one('div.WB_handle > ul > li:nth-of-type(4) > a > em').get_text()
# 获取微博评论数
comment_count = weibo.select_one('div.WB_handle > ul > li:nth-of-type(3) > a > em').get_text()
# 获取微博图片
img = weibo.select_one('div.WB_media_wrap > div > ul > li > img')
if img:
img_url = img['src']
else:
img_url = ''
# 将数据写入工作表
worksheet.write(i + 1, 0, content)
worksheet.write(i + 1, 1, like_count)
worksheet.write(i + 1, 2, comment_count)
# 下载图片并保存到本地
if img_url:
res = requests.get(img_url, headers=headers)
with open(f'{i}.jpg', 'wb') as f:
f.write(res.content)
# 保存工作簿到本地
workbook.save('微博数据.xls')
```
需要注意的是,这里的微博地址需要替换成你要爬取的微博地址。另外,如果微博中没有图片,那么保存的xls文件中对应的图片列会为空。
阅读全文