用python写一个完整的爬虫代码,爬虫可以爬取pc端微博的图片、内容、点赞数、评论数,并将内容、点赞数、评论数保存为xls格式
时间: 2024-06-09 11:08:13 浏览: 101
好的,以下是用 Python 编写的一个微博爬虫脚本,可以爬取 PC 端微博的图片、内容、点赞数、评论数,并将内容、点赞数、评论数保存为 xls 格式:
```python
import requests
from bs4 import BeautifulSoup
import xlwt
# 定义要爬取的微博页数
PAGE_NUM = 10
# 创建一个工作簿,并添加一个工作表
workbook = xlwt.Workbook(encoding = 'utf-8')
worksheet = workbook.add_sheet('weibo')
# 添加表头
worksheet.write(0, 0, '内容')
worksheet.write(0, 1, '点赞数')
worksheet.write(0, 2, '评论数')
# 定义一个变量来记录行数
row_num = 1
# 循环爬取多页微博
for page in range(1, PAGE_NUM+1):
# 构造请求的 URL
url = 'https://weibo.com/?category=0&page=%d' % page
# 发送 HTTP 请求
r = requests.get(url)
# 解析 HTML 文档
soup = BeautifulSoup(r.text, 'html.parser')
# 获取微博列表
weibos = soup.select('.WB_feed_detail')
# 循环处理每一条微博
for weibo in weibos:
# 获取微博内容
content = weibo.select('.WB_text')[0].text.strip()
# 获取点赞数和评论数
like_count = int(weibo.select('.WB_handle .pos')[0].text.strip())
comment_count = int(weibo.select('.WB_handle .pos')[1].text.strip())
# 获取微博图片
imgs = weibo.select('.WB_media_wrap .WB_pic')
img_urls = []
for img in imgs:
img_urls.append(img['src'])
# 将微博内容、点赞数、评论数写入工作表
worksheet.write(row_num, 0, content)
worksheet.write(row_num, 1, like_count)
worksheet.write(row_num, 2, comment_count)
# 将行数加 1
row_num += 1
# 保存工作簿
workbook.save('weibo.xls')
```
这个爬虫使用了 requests 库进行 HTTP 请求,使用了 BeautifulSoup 库解析 HTML 文档,并使用了 xlwt 库将数据保存为 xls 格式。你可以在代码中修改 PAGE_NUM 变量来指定要爬取的微博页数,也可以根据需要修改表头和保存的文件名。
阅读全文