恒基中心国际公寓-紫金矿业股票601988今日行情

2023年9月6日发(作者:诸葛生)
python爬取上海链家⽹⼆⼿房数据
1、数据爬取说明
1.1 爬取⽬的
⼀个朋友在学习⾃考,作业是爬取数据进⾏数据分析,正好最近我在学习python,所以他委托我帮他完成这⼀⼯作
1.2使⽤模块
requests进⾏⽹络请求、bs4进⾏数据解析、xlwt进⾏excel表格存储
2、⽹页结构分析
2.1 ⾸页分析,获取数据
# 指定爬⾍所需的上海各个区域名称
citys = ['pudongxinqu','minhang','baoshan','xuhui','putuo','yangpu','changning','songjiang',
'jiading','huangpu','jinan','zhabei','hongkou','qingpu','fengxian','jinshan','chongming','shanghaizhoubian']
def getHtml(city):
url = '/ershoufang/%s/' % city
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
request = (url=url,headers=headers)
# 获取源码内容⽐好,对编码⽅式优化好
respons = t
# 使⽤bs4模块,对响应的链接源代码进⾏html解析,后⾯是python内嵌的解释器,也可以安装使⽤lxml解析器
soup = BeautifulSoup(respons,'')
# 获取类名为c-pagination的div标签,是⼀个列表
page = ('div .c-pagination')[0]
# 如果标签a标签数⼤于1,说明多页,取出最后的⼀个页码,也就是总页数
if len(('a')) > 1:
alist = int(('a')[-2].text)
else:#否则直接取出总页数
alist = int(('span')[0].text)
saveData(city,url,alist+1)
2.3 选中⼀页查看页⾯链接规律
请求页⾯具体数据,数据结构
3.总代码
我⽤的是python2.7进⾏爬取的,不确定在python3之后的运⾏有没有问题,建议python2版本进⾏尝试
#_*_coding:utf-8_*_
# 导⼊开发模块
import requests
# ⽤于解析html数据的框架
from bs4 import BeautifulSoup
# ⽤于操作excel的框架
import xlwt
# 创建⼀个⼯作
book = ok()
# 向表格中增加⼀个sheet表,sheet1为表格名称 允许单元格覆盖
sheet = _sheet('sheet1', cell_overwrite_ok=True)
# 指定爬⾍所需的上海各个区域名称
citys = ['pudongxinqu','minhang','baoshan','xuhui','putuo','yangpu','changning','songjiang',
'jiading','huangpu','jinan','zhabei','hongkou','qingpu','fengxian','jinshan','chongming','shanghaizhoubian']
def getHtml(city):
url = '/ershoufang/%s/' % city
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
request = (url=url,headers=headers)
# 获取源码内容⽐好,对编码⽅式优化好
respons = t
# 使⽤bs4模块,对响应的链接源代码进⾏html解析,后⾯是python内嵌的解释器,也可以安装使⽤lxml解析器
soup = BeautifulSoup(respons,'')
# 获取类名为c-pagination的div标签,是⼀个列表
page = ('div .c-pagination')[0]
# 如果标签a标签数⼤于1,说明多页,取出最后的⼀个页码,也就是总页数
if len(('a')) > 1:
alist = int(('a')[-2].text)
else:#否则直接取出总页数
alist = int(('span')[0].text)
# 调⽤⽅法解析每页数据
saveData(city,url,alist+1)
# for i in range(1,alist + 1):
# urlStr = '%sd%s' % (url,i)
region = fangL[2].split('/')[0].strip() # 每套⼆⼿房所属的区域
loucheng = fangL[2].split('/')[1].strip() # 每套⼆⼿房所在的楼层
else:
region = '' # 每套⼆⼿房所属的区域
loucheng = fangL[2].strip() # 每套⼆⼿房所在的楼层
if len(fangL) != 4:
chaoxiang = '*'
else:
chaoxiang = fangL[3].strip() # 每套⼆⼿房的朝向
timeStr = ('span',class_='info-col row2-text').contents[-1].strip().lstrip('|')
builtdate = timeStr # 每套⼆⼿房的建筑时间
# 每套⼆⼿房的总价
price = ('span',class_='total-price strong-num').()+u'万'
# 每套⼆⼿房的平⽅⽶售价
jun = ('span',class_='info-col price-item minor').text
price_union = ()
# ⼀定要声明使⽤全局的row变量,否则会报错,说定义前使⽤了该变量
global row
# 把数据写⼊表中,row:⾏数 第⼆个参数:第⼏列 第三个参数:写⼊的内容
(row,0,des)
(row,1,name)
(row,2,room_type)
(row,3,size)
(row,4,region)
(row,5,loucheng)
(row,6,chaoxiang)
欧尼尔-金鑫科技股票行情

更多推荐
师宗二手房网
发布评论