python爬取携程酒店数据
时间: 2024-09-13 21:07:35 浏览: 87
Python爬取携程酒店数据通常会涉及网络爬虫技术,特别是使用一些常用的库如requests、BeautifulSoup或Scrapy等。以下是基本步骤:
1. **导入所需库**:首先安装必要的库,例如`requests`用于发送HTTP请求,`lxml`或`beautifulsoup4`用于解析HTML内容。
```python
import requests
from bs4 import BeautifulSoup
```
2. **发送GET请求**:向携程酒店API或网站主页发起请求获取初始HTML内容。
```python
url = 'https://hotel.ctrip.com'
response = requests.get(url)
```
3. **处理响应**:检查请求是否成功,并使用BeautifulSoup解析返回的HTML文档,提取酒店信息相关的标签元素。
```python
soup = BeautifulSoup(response.text, 'lxml')
hotels = soup.find_all('div', class_='hotel-item') # 示例中的class可能会因网页结构变化而改变
```
4. **提取数据**:遍历找到的元素,通过CSS选择器或XPath表达式提取酒店名称、价格、评分等属性。
```python
data = []
for hotel in hotels:
name = hotel.find('h3', class_='name').text
price = hotel.find('span', class_='price').text
rating = hotel.find('span', class_='rating')['aria-label']
data.append({'name': name, 'price': price, 'rating': rating})
```
5. **保存数据**:将爬取的数据存储到本地文件或数据库,或者直接打印出来作为临时查看。
```python
with open('ctrip_hotels.txt', 'w', encoding='utf-8') as f:
for d in data:
f.write(json.dumps(d, ensure_ascii=False) + '\n')
阅读全文