用python写一个房价爬取代码
时间: 2023-04-08 12:01:59 浏览: 121
好的,我可以回答这个问题。以下是一个简单的Python代码,可以用来爬取房价信息:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com/house-prices'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
prices = soup.find_all('div', class_='price')
for price in prices:
print(price.text)
```
请注意,这只是一个示例代码,实际上,爬取房价信息可能需要更复杂的代码,也需要遵守相关法律法规。
相关问题
帮我用python写一个爬虫爬取链家网站上北京地区的二手房房价,单价,户型,面积,关注度,并对这些数据进行可视化分析,以及多元回归分析,得出二手房各项数据对于关注度的影响
好的,这个任务需要用到 requests、BeautifulSoup、pandas、matplotlib、statsmodels 等库,先安装这些库:
```
pip install requests beautifulsoup4 pandas matplotlib statsmodels
```
然后开始编写爬虫程序,以下是代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 请求头信息
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 = 'https://bj.lianjia.com/ershoufang/'
# 发送请求
res = requests.get(url, headers=headers)
# 解析响应内容
soup = BeautifulSoup(res.text, 'html.parser')
# 获取总页数
total_page = int(soup.find('div', {'class': 'page-box house-lst-page-box'}).get('page-data').split(',')[0].split(':')[1])
# 初始化DataFrame
data = pd.DataFrame(columns=['小区名称', '单价', '户型', '面积', '关注度'])
# 遍历每一页
for i in range(total_page):
# 构建每一页的链接
page_url = url + 'pg' + str(i+1) + '/'
# 发送请求
res = requests.get(page_url, headers=headers)
# 解析响应内容
soup = BeautifulSoup(res.text, 'html.parser')
# 获取当前页的所有二手房信息
house_items = soup.find_all('div', {'class': 'info clear'})
# 遍历每个二手房信息
for item in house_items:
# 获取小区名称
title = item.find('div', {'class': 'title'}).text.strip()
# 获取单价
price = item.find('div', {'class': 'price'}).find('span').text.strip()
# 获取户型和面积
house_info = item.find('div', {'class': 'houseInfo'}).text.split('|')
layout = house_info[1].strip()
area = house_info[2].strip()[:-2]
# 获取关注度
follow_info = item.find('div', {'class': 'followInfo'}).text
follow = follow_info.split('/')[0].strip()
# 将数据添加到DataFrame中
data = data.append({'小区名称': title, '单价': price, '户型': layout, '面积': area, '关注度': follow}, ignore_index=True)
# 数据可视化分析
import matplotlib.pyplot as plt
# 统计不同户型的房屋数量
house_counts = data['户型'].value_counts()
plt.pie(house_counts, labels=house_counts.index, autopct='%1.1f%%')
plt.title('不同户型的房屋数量')
plt.show()
# 统计不同面积的房屋数量
area_counts = data['面积'].value_counts()
plt.bar(area_counts.index, area_counts.values)
plt.title('不同面积的房屋数量')
plt.show()
# 统计不同单价的房屋数量
price_counts = data['单价'].value_counts()
plt.bar(price_counts.index, price_counts.values)
plt.title('不同单价的房屋数量')
plt.show()
# 多元回归分析
from statsmodels.formula.api import ols
# 构建模型
model = ols('关注度 ~ 单价 + 面积 + C(户型)', data=data).fit()
# 查看模型摘要
print(model.summary())
```
运行程序后,会爬取链家网站上北京地区的二手房信息,并对数据进行可视化分析和多元回归分析,最终输出模型摘要。注意,由于数据是实时爬取的,所以每次运行程序得到的结果可能会有所不同。
用python写一个爬取兰州市房价信息可以爬取安居客网站上的兰州新房和二手房的信息,如名称、价格、面积、地址、类型等
好的,这里提供一个简单的代码实现,需要使用到 requests 和 BeautifulSoup 库。请先确保已经安装了这两个库。
```python
import requests
from bs4 import BeautifulSoup
# 爬取的目标url
url = 'https://lz.anjuke.com/sale/'
# 发送http请求,获取网页源代码
response = requests.get(url)
# 使用BeautifulSoup解析html
soup = BeautifulSoup(response.text, 'html.parser')
# 获取新房和二手房的标签
new_house = soup.find_all('div', class_='key-list imglazyload')
second_hand_house = soup.find_all('div', class_='list-item')
# 遍历新房标签,抓取需要的信息
for item in new_house:
name = item.find('a', class_='items-name').text.strip() # 名称
price = item.find('em', class_='price').text.strip() # 价格
area = item.find('div', class_='details-item').text.strip() # 面积
address = item.find('span', class_='list-map').text.strip() # 地址
house_type = '新房' # 类型
print(name, price, area, address, house_type)
# 遍历二手房标签,抓取需要的信息
for item in second_hand_house:
name = item.find('a', class_='houseListTitle').text.strip() # 名称
price = item.find('span', class_='price-det').text.strip() # 价格
area = item.find('div', class_='details-item').text.strip() # 面积
address = item.find('span', class_='comm-address').text.strip() # 地址
house_type = '二手房' # 类型
print(name, price, area, address, house_type)
```
爬取到的信息将会在控制台中输出。如果需要将信息保存到本地文件中,可以使用 Python 的文件操作来实现。
需要注意的是,网站的反爬虫机制比较严格,如果频繁地发送请求可能会被封 IP。建议加上一些延时或者使用代理池等方法来规避这个问题。
阅读全文