链家网房源
1 | import requests |
request
设置列表页URL的固定部分
1 | url = 'http://bj.lianjia.com/ershoufang/' |
设置请求头部信息
1 | headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', |
循环抓取列表页信息
1 | for i in range(1,2): |
解析抓取的页面内容
1 | lj=BeautifulSoup(html,'html.parser') |
提取房源总价
1 | price=lj.find_all('div','priceInfo') |
提取房源信息
1 | houseInfo=lj.find_all('div',attrs={'class':'houseInfo'}) |
提取房源关注度
1 | followInfo=lj.find_all('div',attrs={'class':'followInfo'}) |
DataFrame
1 | import pandas as pd |
| totalprice | houseinfo | followinfo | |
|---|---|---|---|
| 0 | 268 | 农光东里 | 1室1厅 | 37.55平米 | 南 | 精装 | 150人关注 / 6天以前发布 |
| 1 | 381 | 平乐园小区 | 2室1厅 | 60.52平米 | 南 北 | 精装 | 135人关注 / 18天以前发布 |
| 2 | 570 | 科源小区 | 2室1厅 | 65.1平米 | 东 西 | 简装 | 70人关注 / 5个月以前发布 |
| 3 | 365 | 劲松南路 | 2室1厅 | 57.49平米 | 南 北 | 简装 | 97人关注 / 10天以前发布 |
| 4 | 688 | 大井胡同 | 1室1厅 | 38平米 | 南 | 精装 | 18人关注 / 12天以前发布 |
对房源信息进行分列
1 | houseinfo_split = pd.DataFrame((x.split('|') for x in house.houseinfo),index=house.index,columns=['小区','户型','面积','朝向','装修']) |
| 小区 | 户型 | 面积 | 朝向 | 装修 | |
|---|---|---|---|---|---|
| 0 | 农光东里 | 1室1厅 | 37.55平米 | 南 | 精装 |
| 1 | 平乐园小区 | 2室1厅 | 60.52平米 | 南 北 | 精装 |
| 2 | 科源小区 | 2室1厅 | 65.1平米 | 东 西 | 简装 |
| 3 | 劲松南路 | 2室1厅 | 57.49平米 | 南 北 | 简装 |
| 4 | 大井胡同 | 1室1厅 | 38平米 | 南 | 精装 |
将分列结果拼接回原数据表
1 | house=pd.merge(house,houseinfo_split,right_index=True, left_index=True) |
| totalprice | houseinfo | followinfo | 小区 | 户型 | 面积 | 朝向 | 装修 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 268 | 农光东里 | 1室1厅 | 37.55平米 | 南 | 精装 | 150人关注 / 6天以前发布 | 农光东里 | 1室1厅 | 37.55平米 | 南 | 精装 |
| 1 | 381 | 平乐园小区 | 2室1厅 | 60.52平米 | 南 北 | 精装 | 135人关注 / 18天以前发布 | 平乐园小区 | 2室1厅 | 60.52平米 | 南 北 | 精装 |
| 2 | 570 | 科源小区 | 2室1厅 | 65.1平米 | 东 西 | 简装 | 70人关注 / 5个月以前发布 | 科源小区 | 2室1厅 | 65.1平米 | 东 西 | 简装 |
| 3 | 365 | 劲松南路 | 2室1厅 | 57.49平米 | 南 北 | 简装 | 97人关注 / 10天以前发布 | 劲松南路 | 2室1厅 | 57.49平米 | 南 北 | 简装 |
| 4 | 688 | 大井胡同 | 1室1厅 | 38平米 | 南 | 精装 | 18人关注 / 12天以前发布 | 大井胡同 | 1室1厅 | 38平米 | 南 | 精装 |
对房源关注度进行分列
1 | followinfo_split = pd.DataFrame((x.split('/') for x in house.followinfo),index=house.index,columns=['guanzhu','fabu']) |
| totalprice | houseinfo | followinfo | 小区 | 户型 | 面积 | 朝向 | 装修 | guanzhu | fabu | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 268 | 农光东里 | 1室1厅 | 37.55平米 | 南 | 精装 | 150人关注 / 6天以前发布 | 农光东里 | 1室1厅 | 37.55平米 | 南 | 精装 | 150人关注 | 6天以前发布 |
| 1 | 381 | 平乐园小区 | 2室1厅 | 60.52平米 | 南 北 | 精装 | 135人关注 / 18天以前发布 | 平乐园小区 | 2室1厅 | 60.52平米 | 南 北 | 精装 | 135人关注 | 18天以前发布 |
| 2 | 570 | 科源小区 | 2室1厅 | 65.1平米 | 东 西 | 简装 | 70人关注 / 5个月以前发布 | 科源小区 | 2室1厅 | 65.1平米 | 东 西 | 简装 | 70人关注 | 5个月以前发布 |
| 3 | 365 | 劲松南路 | 2室1厅 | 57.49平米 | 南 北 | 简装 | 97人关注 / 10天以前发布 | 劲松南路 | 2室1厅 | 57.49平米 | 南 北 | 简装 | 97人关注 | 10天以前发布 |
| 4 | 688 | 大井胡同 | 1室1厅 | 38平米 | 南 | 精装 | 18人关注 / 12天以前发布 | 大井胡同 | 1室1厅 | 38平米 | 南 | 精装 | 18人关注 | 12天以前发布 |
参考: