python爬虫爬取民宿数据
时间: 2025-06-05 19:33:59 浏览: 13
### 编写Python爬虫程序以获取民宿网站数据
要使用Python编写一个爬虫程序来爬取民宿网站的数据,可以参考以下内容。以下是实现这一目标的完整方法和代码示例。
#### 1. 环境准备
在开始之前,需要确保已经安装了Python环境[^1]。此外,还需要安装一些常用的库,例如`requests`用于发送HTTP请求,`BeautifulSoup`用于解析HTML页面。可以通过以下命令安装这些库:
```bash
pip install requests beautifulsoup4
```
#### 2. 构造网页链接列表
为了爬取多个页面的数据,首先需要构造一个包含所有目标页面链接的列表。以下是一个示例代码,展示如何通过循环生成多页链接[^2]:
```python
url_list = []
base_url = 'https://example.com/search-duanzufang-p{}-0/' # 替换为目标网站的基础URL
for page in range(1, 6): # 假设爬取前5页数据
url = base_url.format(page)
url_list.append(url)
```
#### 3. 发送HTTP请求并获取页面内容
使用`requests`库发送HTTP请求,并获取目标页面的HTML内容。以下是一个简单的函数,用于获取指定URL的HTML文本:
```python
import requests
def getHTMLText(url):
try:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'} # 设置User-Agent
response = requests.get(url, headers=headers)
response.raise_for_status() # 检查请求是否成功
response.encoding = response.apparent_encoding # 自动检测编码
return response.text
except Exception as e:
print(f"Error: {e}")
return ""
```
#### 4. 解析HTML并提取所需数据
使用`BeautifulSoup`库解析HTML页面,并提取所需的民宿信息。以下是一个示例代码,展示如何提取民宿名称、价格等信息[^3]:
```python
from bs4 import BeautifulSoup
def parseHTML(html):
soup = BeautifulSoup(html, "html.parser")
houses = soup.find_all("div", class_="house-item") # 根据实际HTML结构调整选择器
data = []
for house in houses:
name = house.find("span", class_="house-name").text.strip() if house.find("span", class_="house-name") else "N/A"
price = house.find("span", class_="price").text.strip() if house.find("span", class_="price") else "N/A"
data.append({"name": name, "price": price})
return data
```
#### 5. 主程序逻辑
将上述功能整合到主程序中,实现自动化的爬取流程:
```python
if __name__ == '__main__':
all_data = []
for url in url_list:
html = getHTMLText(url)
if html:
data = parseHTML(html)
all_data.extend(data)
# 输出结果
for item in all_data:
print(item)
```
#### 注意事项
- 爬取过程中需遵守目标网站的`robots.txt`文件规定[^1]。
- 如果目标网站使用动态加载(如JavaScript渲染),可能需要借助`Selenium`或`Playwright`等工具模拟浏览器行为[^7]。
---
###
阅读全文
相关推荐


















