python爬虫爬取链家南京二手房信息400条
时间: 2023-07-11 21:00:54 浏览: 191
好的,以下是利用 Python 编写的爬虫代码,可以爬取链家南京二手房信息400条:
```python
import requests
from bs4 import BeautifulSoup
# 设置请求头,模拟浏览器访问
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'}
# 爬取400条数据
for page in range(1, 21):
# 构造请求URL
url = 'https://nj.lianjia.com/ershoufang/pg{}/'.format(page)
# 发送请求
response = requests.get(url, headers=headers)
# 解析HTML
soup = BeautifulSoup(response.content, 'html.parser')
# 获取房源信息列表
house_list = soup.find_all('div', class_='info clear')
# 遍历房源信息列表
for house in house_list:
# 获取房源标题
title = house.find('div', class_='title').a.text.strip()
# 获取房源详细信息
info = house.find('div', class_='houseInfo').text.strip()
# 获取房源总价
price_total = house.find('div', class_='totalPrice').span.text.strip()
# 获取房源单价
price_unit = house.find('div', class_='unitPrice').span.text.strip()
# 打印房源信息
print('标题:', title)
print('信息:', info)
print('总价:', price_total)
print('单价:', price_unit)
print('---------------------------')
```
代码解释:
首先我们需要导入 requests 和 BeautifulSoup 库,requests 库用于发送 HTTP 请求,而 BeautifulSoup 库用于解析 HTML。
```python
import requests
from bs4 import BeautifulSoup
```
接着,我们设置了请求头,模拟浏览器访问。
```python
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'}
```
然后,我们使用 for 循环爬取400条数据,每页20条,总共爬取20页。
```python
for page in range(1, 21):
url = 'https://nj.lianjia.com/ershoufang/pg{}/'.format(page)
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
house_list = soup.find_all('div', class_='info clear')
```
在循环内部,我们先使用 find_all() 方法获取房源信息列表,然后遍历房源信息列表,依次获取房源标题、详细信息、总价和单价,并打印出来。
```python
for house in house_list:
title = house.find('div', class_='title').a.text.strip()
info = house.find('div', class_='houseInfo').text.strip()
price_total = house.find('div', class_='totalPrice').span.text.strip()
price_unit = house.find('div', class_='unitPrice').span.text.strip()
print('标题:', title)
print('信息:', info)
print('总价:', price_total)
print('单价:', price_unit)
print('---------------------------')
```
输出结果类似如下:
```
标题: 扬子江花园 4室2厅 115.5平米
信息: 扬子江花园 | 4室2厅 | 115.5平米 | 南 | 精装 | 有电梯
总价: 260万
单价: 22551元/平米
---------------------------
标题: 金地名峰 3室1厅 89.14平米
信息: 金地名峰 | 3室1厅 | 89.14平米 | 南 | 精装 | 有电梯
总价: 270万
单价: 30312元/平米
---------------------------
......
```
希望能对你有所帮助!
阅读全文