用python写一个完整的爬虫代码,爬虫可以爬取手机移动端微博的图片、内容、点赞数、评论数,微博搜索词为大海,并保存为xs格式
时间: 2024-06-09 22:08:04 浏览: 149
以下是一个示例代码,需要安装 requests、beautifulsoup4、pandas、xlwt 库。
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import xlwt
# 定义爬虫函数
def spider(keyword):
url = 'https://m.weibo.cn/api/container/getIndex?type=all&queryVal=' + keyword + '&featurecode=20000320&luicode=10000011&lfid=106003type%3D1&title=' + keyword + '&containerid=100103type%3D1%26q%3D' + keyword + '&page='
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'}
# 定义存储数据的列表
data_list = []
for i in range(1, 3): # 只爬取前两页数据
html = requests.get(url + str(i), headers=headers)
soup = BeautifulSoup(html.text, 'html.parser')
cards = soup.select('div.card-wrap')
for card in cards:
# 获取微博内容
mblog = card.select_one('div.mblog')
if mblog:
text = mblog.select_one('div.weibo-text').get_text(strip=True)
else:
text = ''
# 获取点赞数和评论数
attitudes = card.select_one('span[node-type="like_status"] em').get_text()
comments = card.select_one('span[node-type="comment_btn_text"] em').get_text()
# 获取图片链接
pics = card.select('div.mblog-pic a')
pic_urls = []
for pic in pics:
pic_urls.append(pic.attrs['href'])
# 存储数据
data_list.append([text, attitudes, comments, pic_urls])
# 将数据存储为 Excel 文件
df = pd.DataFrame(data_list, columns=['微博内容', '点赞数', '评论数', '图片链接'])
writer = pd.ExcelWriter(keyword + '.xls')
df.to_excel(writer, index=False)
writer.save()
# 调用爬虫函数
spider('大海')
```
该代码将爬取手机移动端微博中搜索词为“大海”的前两页数据,包括微博内容、点赞数、评论数和图片链接,并将数据保存为名为“大海.xls”的 Excel 文件。
阅读全文