完整走一遍从数据爬取下来到完成数据预测的流程,这次先把爬取数据整出来。爬取的内容是深圳龙岗区的二手房数据,一共有3000条。
- 先把要用的包导进来
import re
import xlwt
import requests
import collections
from bs4 import BeautifulSoup
- 解析网站
由于每个页面的链接都是pg+页数,所以这里再解析网站的时候直接对翻页爬取也做了处理
page = 1
longgang_url = 'https://sz.ke.com/ershoufang/longgangqu/pg'
pre_url = longgang_url+str(page)
html = requests.get(pre_url).text
house = BeautifulSoup(html,'html.parser')
- 确定爬取网页内容
红色框圈主的为此次要爬取的内容,这部分最难的还是“中楼层 (共30层) 5室2厅 | 165.61平米 | 南”,因为我想把这一整条标签切割成一段一段的格式,方便后期数据预测要使用这个特征。
- 查看所需爬取内容对应的标签并实现爬取
接下来的爬取内容均在for循环里面,此处的循环是针对翻页的循环(一共有100页)。
for page in range(101):
- 房子名称对应的标签如下
爬取内容如下
name=[]
#房名
pre_name = house.find_all('a', class_='VIEWDATA CLICKDATA maidian-detail')
for each in pre_name:
name.append(each.text)
- 房子位置对应的标签如下
爬取内容如下,如果不做正则表达式匹配处理的话会遇到下面这种情况,严重影响美观。
所以这边用正则表达式来匹配我们需要的文字信息,匹配处理完的数据是个列表,所以我们还需要把列表中的数据取出来再插入position的列表里。
position=