爬取网页https://www.dianping.com/member/2509937719/reviews中的评分数据,并保存到一个excel文档中,放在桌面上
时间: 2023-11-28 13:03:45 浏览: 226
好的,这个问题我可以回答。
首先,需要安装两个Python库:requests和beautifulsoup4。可以使用以下命令进行安装:
```
pip install requests beautifulsoup4
```
然后,可以使用以下代码爬取大众点评用户的评分数据,并保存到一个Excel文档中:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import os
# 设置请求头,模拟浏览器访问
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,需要替换为要爬取的用户URL
url = 'https://www.dianping.com/member/2509937719/reviews'
# 发起请求
r = requests.get(url, headers=headers)
# 解析HTML内容
soup = BeautifulSoup(r.content, 'html.parser')
# 获取评分数据的总页数
page_count = int(soup.find('div', {'class': 'reviews-pages'}).find_all('a')[-2].text)
# 保存评分数据到Excel文档中
df = pd.DataFrame(columns=['评分'])
for i in range(1, page_count + 1):
# 构造每一页的URL
url = f'https://www.dianping.com/member/2509937719/reviews?pg={i}'
# 发起请求
r = requests.get(url, headers=headers)
# 解析HTML内容
soup = BeautifulSoup(r.content, 'html.parser')
# 获取所有评分的HTML元素
scores = soup.find_all('span', {'class': 'sml-rank-stars'})
for score in scores:
df = df.append({'评分': score['class'][1][7]}, ignore_index=True)
# 保存评分数据到Excel文档中
desktop = os.path.join(os.path.expanduser("~"), 'Desktop')
df.to_excel(os.path.join(desktop, 'scores.xlsx'), index=False)
```
需要注意的是,需要将代码中的`url`替换为要爬取的用户URL。另外,代码中保存评分数据到Excel文档中需要用到pandas库,如果没有安装可以使用以下命令进行安装:
```
pip install pandas
```
最后,代码中保存Excel文档的路径可以自己指定,这里我将其保存到桌面上。
希望能够帮到你!
阅读全文