大数据采集与预处理课件:数据采集与可视化综合案例 -1_第1页
大数据采集与预处理课件:数据采集与可视化综合案例 -1_第2页
大数据采集与预处理课件:数据采集与可视化综合案例 -1_第3页
大数据采集与预处理课件:数据采集与可视化综合案例 -1_第4页
大数据采集与预处理课件:数据采集与可视化综合案例 -1_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据采集与可视化案例 本章学习目标●分析链家二手房的网页结构和内容●使用requests库编写爬虫代码获取指定数据●使用BeautifulSoup实现数据的解析●使用pymysql库实现数据的持久化●使用flask和echarts实现数据可视化7.3链家二手房数据采集与可视化7.3.1页面分析根据前面的任务描述,可以知道本爬虫案例的具体需求,包括技术需求和数据需求,这是第一步。接下来将对页面结构和内容进行深度地分析,目的是为了找到链家二手房网页中跟具体需求相关的业务逻辑和业务数据。如图7-3所示,该页面能够清楚地定位到二手房的相关信息,包括地区、户型、面积、装修类型、楼层、房屋类型、售价等信息。因此,该爬虫综合案例使用的URL将是这个拥有二手房相关信息的页面。图7-3链家二手房网页数据使用鼠标右键单击页面的房屋位置之后(比如“松树桥”),将出现如下菜单选项,如图7-4所示。通过使用鼠标左键单击该菜单选项中的“检查”选项,Chrome浏览器呈现自带的“开发者工具”,并将焦点指向该“松树桥”链接控件所在的具体的HTML页面结构当中。这里的目的是为了获取该“松树桥”链接控件所属的标签在页面内容中的class属性值“positionInfo”,如图7-5所示。图7-4鼠标右键单击“松树桥”链接控件的菜单选项图7-5获取“松树桥”链接控件所属标签的class值到此,根据任务需求,通过使用CHROME浏览器访问并分析了链家二手房网站的“松树桥”链接控件在该页面中的具体位置,状态及其class属性值,为下一步使用代码的编写找准了目标。“松树桥”是二手房的位置信息,由于其是链接控件,通过右键点击“检查”可以找到具体位置。但二手房的户型、房价等信息不是控件,无法通过右键点击“检查”进行定位。为了定位二手房的其他信息,可以使用CHROME浏览器的“开发者工具”的搜索功能进行定位。比如需要定位二手房的房价信息,如图7-6所示,在搜索栏中输入“115”,可以定位房价信息的所在位置。图7-6房价信息所在页面位置因此,进一步获取房价所属的标签在页面内容中的class属性值“totalPricetotalPrice2”,如图7-7所示。二手房的户型、面积、装修类型、楼层、房屋类型、均价等其他信息可以通过同样的方法搜索从而定位到准确的位置,获取相应的class值。图7-7获取房价所属标签的class值数据安全不仅包括公民个人的数据安全,还包括企业和政府的数据安全。公民数据安全涉及个人隐私和生命安全,企业数据安全涉及商业秘密和企业权益,政府数据安全涉及国家秘密和公共利益,任何一个方面的数据安全问题处理不好,都会影响到政治安全、社会稳定、国家兴衰。数据安全法的实施,将有助于进一步提升国家数据安全保障能力,有助于加强我国应对因数据引发的国家安全风险与挑战,有助于维护国家主权、安全和发展利益。数据采集为全面数据安全管理提供数据支撑。数据采集作为数据安全建设的第一步,需将分布在各业务系统中的用户行为数据、业务支撑数据、安全事件等数据信息进行采集、存储,为后续的数据审计、分析、挖掘以及安全运营等提供数据支撑。因此,构建以大数据技术为基础的数据采集系统势在必行,成为各企业的共同选择。7.2.2数据获取在对链家二手房网页进行分析之后,现在来获取链家二手房网页中地区(region)、户型(house_type)、面积(area_list)、装修类型(decorate_type)、楼层(floor_type)、房屋类型(building_type)、售价(total_price)、单价(avg_price)的静态数据。在对页面进行了分析之后,现在就可以开始使用requests库编写自定义的爬虫代码对该部分的静态数据直接进行获取了。1)导入爬虫代码需要使用的requests库用于获取URL的页面响应数据,实现数据的精确定位和操作。importrequests2)构造爬虫代码请求该URL的Headers头部信息。在开发者工具的“Network”选项卡下的“Headers”选项卡中得到该默认URL的Headers头部信息。其目的是向智通人才网的后台服务器隐藏爬虫代码的真实身份,让爬虫代码带着这些请求信息伪装成浏览器正常访问该网站服务器的状态,而不被服务器的反爬措施发现。headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/74.0.3729.108Safari/537.36'}3)声明变量url用于获取指定的爬取的URL。这里将链家二手房页面的URL赋值给url。url='cq.lianjia/ershoufang/#d#'temp_url=url.replace("#d#",f"pg{idx}")4)声明变量response用于获取requests库的get方法从上一步指定的url和headers中获取的页面响应数据。

response=requests.get(url,headers=headers)5)使用BeautifulSoup库解析页面,进一步精确获取相应的class值。soup=BeautifulSoup(response.text,"html.parser")lis=soup.find('ul',class_='sellListContent')6)使用for循环语句遍历各个<div>标签以获取所有<div>标签中相应class值的静态数据,包括:地区(region)、户型(house_type)、面积(area_list)、装修类型(decorate_type)、楼层(floor_type)、房屋类型(building_type)、售价(total_price)、单价(avg_price)的数据。通过分析<div>的结构和内容后可以发现,任务所需要的数据均位于各自<div>标签中的不同位置。因此,这里需要获取每一个<div>标签中的指定class的内容。以房屋信息为例,需要获取class值为'houseInfo'的内容,即“2室1厅|87.76平米|南|精装|中楼层(共32层)|2008年建|塔楼”,如图7-8所示。图7-8获取class值为'houseInfo'中的指定内容由于'houseInfo'中整合了户型、面积、装修类型、楼层、房屋类型等信息,需要对该信息进行进一步分离,从而得到单独的数据。'houseInfo'爬取代码如下。二手房的地区、售价及均价等信息可以通过同样的方法可以爬取相应的数据。具体代码见完整代码。到此,通过使用requests库和BeautifulSoup库编写自定义爬虫代码实现了对链家二手房页面的静态数据的获取。xxs=lis.find_all('div',class_='houseInfo')#print(type(xxs))forainxxs:#list1=[]xx=a.text.replace('','').replace('(','_').replace(')','').split('|')#print(xx)#area_list.append

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论