用这些条件写一段微博数据爬取代码,包括评论点赞主体内容
时间: 2024-10-15 12:14:11 浏览: 17
在编写微博数据爬虫时,我们通常会结合特定的URL、选择器(CSS或XPath)、评论和点赞元素的定位,以下是一个简化的示例代码,假设我们在微博网站上爬取带评论和点赞的信息:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
def fetch_weibo_data(url):
headers = {'User-Agent': 'Mozilla/5.0'} # 设置伪装浏览器头
response = requests.get(url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
# 获取主体内容(这里假设主体在<div class="weibo-content">标签内)
weibo_content = soup.find('div', class_='weibo-content').get_text()
# 获取评论区(这里假设评论在<ul class="comments">下)
comments_list = soup.find('ul', class_='comments')
# 对每个评论进行遍历
comment_data = []
for comment in comments_list.find_all('li'):
author = comment.find('span', class_='comment-author').text
content = comment.find('span', class_='comment-text').get_text()
comment_data.append({'Author': author, 'Content': content})
# 获取点赞数(这里假设点赞在<span class="vote-count">中)
like_count = soup.find('span', class_='vote-count').text
return weibo_content, comment_data, like_count
# 示例微博url
base_url = "https://example.com/weibo/post"
data = fetch_weibo_data(base_url)
main_content, comments, like_count = data
df = pd.DataFrame(data=comments, columns=['Author', 'Content'])
print(f"主体内容: {main_content}")
print("评论及点赞数据:")
df
```
请注意,实际的网站结构可能会有所不同,你需要查找对应的HTML标签或CSS类来定位数据。另外,在爬取过程中记得遵守网站的robots.txt规则,并尊重网站的服务条款。
阅读全文