爬取携程网站评论数据的代码
时间: 2024-12-29 12:36:07 浏览: 22
爬取携程网站评论数据通常需要利用网络爬虫技术,比如Python中的BeautifulSoup、Scrapy框架或者requests库。以下是一个简单的Python示例,展示如何使用`requests`和`BeautifulSoup`来抓取页面内容:
```python
import requests
from bs4 import BeautifulSoup
# 定义目标URL
url = "https://www.ctrip.com/web/comment/getHotelCommentsAjax.html?hotelId={hotel_id}&pageNumber={page_number}"
# 需要模拟浏览器请求头,设置User-Agent
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'}
def get_ctrip_reviews(hotel_id, page_number):
# 发送GET请求
response = requests.get(url.format(hotel_id=hotel_id, page_number=page_number), headers=headers)
# 检查请求是否成功
if response.status_code == 200:
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 找到评论部分并提取信息,这取决于网页的具体结构
comments = soup.find('div', class_='comment-list') # 这里只是一个假设,实际结构可能不同
for comment in comments.find_all('div', class_='review-item'):
title = comment.find('p', class_='title').text
rating = comment.find('i', class_='rating').text
content = comment.find('p', class_='content').text
print(f"标题: {title}, 评分: {rating}, 内容: {content}")
else:
print("请求失败")
# 调用函数,例如获取第一页评论
get_ctrip_reviews(your_hotel_id, 1)
```
注意:
1. 你需要替换`{hotel_id}`和`{page_number}`为实际的酒店ID和页码。
2. 实际网页结构可能会有所不同,上述代码中的选择器(如`class_`)需要根据携程网站的实际评论区块进行调整。
3. 网站有可能有反爬机制,频繁或大量请求可能会导致IP被封禁,因此需要考虑使用代理IP或者设置合理的延时。
阅读全文