BeautifulSoup爬取贝壳网成都二手房源信息
最近想出一套二手房,刚好在学习爬虫,那就顺手爬一下贝壳上成都各区二手房信息了解一下行情,本篇先介绍数据爬取,数据分析稍后有时间再写。仅用于技术交流,请勿商业应用,如有侵权,联系删除。
1. 开发环境:
python 3.8.3;
bs4, pandas, requests;
存为csv, excel文件;
个人比较喜欢用bs4, 比较简洁,xpath也有优势,虽然路径稍复杂,但一步一步的往下找非常清晰。(效率方面暂时不做为重点考虑)
2. 最终获取表格展示
3. 爬取过程分析
访问成都二手房一级页面url:
https://cd.ke.com/ershoufang/
分析一级页面可以看到每页有30套房源,房源列表在ul标签下面,class为 SellListContent。
然后获取每套房源详情页的url,可以看到url在li–>a–>href中,bs4直接获取即可。
def get_detail_url(page):
"""
获取每一页30套房源的详情url
"""
base_url = 'http://cd.ke.com/ershoufang/pg{}/'.format(page)
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60",
}
response = requests.get(url = base_url, headers = headers)
# print(response.status_code)
base_data = response.content.decode()
soup = BeautifulSoup(base_data, 'lxml')
house_lists = soup.find_all('li', attrs={
'class':'clear'})
url_lists=[]
for house in house_lists:
house_link = house.find('a')['href']
# print(house_link)
url_lists.append(house_link)
# print(url_lists)
return url_lists
进入详情页获取该房源的所有信息,包括基本信息,交易信息,小区简介等。
保存数据为csv和excel格式。
详细代码如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 27 16:53:04 2020
1. 获取贝壳网 成都市二手房信息
2. 存为csv, excel文件
@author: 进击的SB
"""
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random
import time
def get_detail_url(page):
"""
获取每一页30套房源的详情url
"""
base_url