用python爬取链家泰州二手房信息400条并直接生成表格包含房屋名称,价格,面积,户型,关注人数
时间: 2024-03-31 16:38:39 浏览: 54
好的,我可以帮你实现这个功能。首先,我们需要安装一些库,包括requests、BeautifulSoup4和pandas。你可以在终端中使用以下命令安装:
```
pip install requests beautifulsoup4 pandas
```
接下来,我们可以编写爬虫代码,如下所示:
```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'}
# 获取网页内容
def get_html(url):
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
if response.status_code == 200:
return response.text
else:
return None
# 解析网页内容
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
house_list = soup.find('ul', {'class': 'sellListContent'}).find_all('li')
data = []
for house in house_list:
name = house.find('div', {'class': 'title'}).find('a').text.strip()
price = house.find('div', {'class': 'totalPrice'}).find('span').text.strip()
area = house.find('div', {'class': 'houseInfo'}).find_all('a')[1].text.strip()
layout = house.find('div', {'class': 'houseInfo'}).find_all('a')[0].text.strip()
follow = house.find('div', {'class': 'followInfo'}).find('span', {'class': 'starIcon'}).text.strip()
data.append([name, price, area, layout, follow])
return data
# 保存为csv文件
def save_to_csv(data):
df = pd.DataFrame(data, columns=['房屋名称', '价格', '面积', '户型', '关注人数'])
df.to_csv('lianjia.csv', index=False, encoding='utf_8_sig')
# 主函数
def main():
url = 'https://tz.lianjia.com/ershoufang/pg{}/'
data = []
for i in range(1, 5):
html = get_html(url.format(i))
if html:
data += parse_html(html)
save_to_csv(data)
if __name__ == '__main__':
main()
```
在这个示例中,我们使用了requests库来发送HTTP请求,并使用BeautifulSoup4库解析HTML页面。我们首先定义了一个get_html函数,用于获取给定URL的HTML内容。然后,我们定义了一个parse_html函数,用于解析HTML内容并提取房屋名称、价格、面积、户型和关注人数。最后,我们使用pandas库将数据保存到CSV文件中。在主函数中,我们循环遍历多个页面,并调用get_html和parse_html函数来获取和解析每个页面的内容。最后,我们调用save_to_csv函数将数据保存到CSV文件中。
你可以将以上代码保存在一个Python文件中,例如lianjia.py,然后在终端中运行它:
```
python lianjia.py
```
运行成功后,你将在当前目录下看到一个名为lianjia.csv的文件,其中包含了400条链家泰州二手房的信息。
阅读全文