需求: 爬取Q房网二手房源数据(小区, 户型, 面积, 区域, 总价) 保存到csv文件中 命名 url:https://guangzhou.qfang.com/sale 要求: 1. 使用xpath提取数据 2. 爬取数据的城市自选 3. 需爬取前3页数据
时间: 2024-11-09 17:31:30 浏览: 43
好的,为了爬取Q房网二手房源数据并将其保存到CSV文件中,我们可以采用Python的`requests`, `BeautifulSoup`或更高级的库如`lxml`和`pandas`。下面是一个基本的步骤说明:
1. **安装所需库**:
首先需要安装`requests`和`lxml`(如果还没安装):
```
pip install requests lxml
```
2. **定义函数**:
创建一个函数,接受城市名作为参数,并使用XPath提取所需信息。这里假设网页结构已知:
```python
import requests
from bs4 import BeautifulSoup
import csv
def scrape_data(city, url, pages):
base_url = f"https://{city}.qfang.com/sale"
data = []
for page in range(1, pages + 1):
response = requests.get(base_url + f"?page={page}")
soup = BeautifulSoup(response.text, 'lxml')
# 使用XPath表达式找到目标元素
properties = soup.select('.property-item') # 假设这个类包含房源信息
for property in properties:
neighborhood = property.find('.//span[@class="community"]').text.strip()
house_type = property.find('.//span[@class="house-type"]').text.strip()
area = property.find('.//span[@class="area"]').text.strip()
district = property.find('.//span[@class="district"]').text.strip()
total_price = property.find('.//span[@class="total-price"]').text.strip()
data.append([neighborhood, house_type, area, district, total_price])
with open(f"{city}_houses.csv", 'w', newline='', encoding='utf-8-sig') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['小区', '户型', '面积', '区域', '总价'])
writer.writerows(data)
def main():
city = "广州" # 替换为你想爬取的城市名
pages = 3 # 爬取页面数
scrape_data(city, url, pages)
if __name__ == '__main__':
main()
```
3. **运行脚本**:
将上述代码复制到一个.py文件中,然后运行它。注意,由于实际网站的HTML结构可能会变化,所以XPath选择器可能需要根据网站的实际布局进行调整。
阅读全文