爬虫大数据采集与应用,大数据 爬虫
Web crawler: Web crawler(在FOAF社区中也称为web spider、web robot,更常被称为web chaser)是一个程序或脚本,它根据一定的规则自动从万维网上捕获信息。其他不常用的名称有蚂蚁、自动索引、模拟器或蠕虫。
以上是网络爬虫的百度,下面开始介绍使用Python进行网络爬虫来获取数据。
用于获取新冠肺炎的实时数据。
使用PyCharm工具。
创建一个新的Python文件,并将其命名为get_data
使用爬虫最常用的请求模块。
第一部分:
获取网页信息:
导入请求URL= https://voice . Baidu . com/act/new pneumonia/new pneumonia response=requests . get(URL)
第二部分:
您可以观察数据的特征:
数据包含在脚本标记中,xpath用于获取数据。
从lxml导入etree导入模块
生成一个html对象并解析它
可以得到一个list类型的内容,使用第一项就可以得到所有的内容。
接下来,首先获取component的内容,然后使用json模块将字符串类型转换为字典(Python数据结构)。
要获得国内数据,您需要在组件中找到案例列表。
接下来,代码:
from lxml import etreeimport json#生成HTML对象HTML=etree.html(response . text)result=HTML . XPath(//script[@ type= application/JSON ]/text())result=result[0]# JSON . load()方法可以将字符串转换为python数据类型result=JSON . loads(result)result _ in=result[ component ][0][ caselist ]
第三部分:
。将国内数据存储在excel电子表格中:
使用openyxl模块,导入openpyxl
首先,创建一个工作簿,并在工作簿下创建一个工作表。
接下来,命名工作表并赋予其属性。
代码如下:
导入pyxl #创建工作簿wb=openpyxl。workbook()# create worksheet ws=WB . activews . title=国内疫情 ws.append([省,累计诊断,死亡,治愈,已有诊断,累计诊断增量,死亡增量,治愈增量,已有诊断增量)地区-主要省辖市-城市确诊-累计累计确诊-值域相对时间-确诊相对-累计确诊增量相对值域增量curConfirm -已有城镇curConfirm relative-已有真实增量 for each in result _ in:temp _ list=[each [ area ],each[确诊]]/data.xlsx)
第四部分:
在excel中存储外来数据:
获取组件的全局列表中的外来数据。
然后在excel表格中创建一个工作表来代表不同的洲。
代码如下:
data _ out=result[ component ][0][ global list ]for each in data _ out:sheet _ title=each[ area ]#创建新工作表Ws _ out=WB . Create _ sheet(sheet _ title)Ws _ out . append([ country ,累积诊断, death , cure ,现有诊断,累积诊断增量])for Country in each[ sublist ]:list _ temp=[Country[ Country ],Country[ confirmed]Country[ dead ],country[crued],Country/data.xlsx
从什么是导入etree导入JSON导入打开pyxl URL= https://voice。百度一下。新肺炎/新肺炎响应=请求。get(URL)# print(响应。正文)#生成超文本标记语言对象html=etree .HTML(响应。text)结果=HTML。XPath(//script[@ type= application/JSON ]/text())result=result[0]# JSON。负载()方法可以将字符串转化为大蟒数据类型结果=json.loads(结果)#创建工作簿wb=openpyxl .工作簿()#创建工作表ws=wb.activews.title=国内疫情ws.append([省份, 累计确诊, 死亡, 治愈, 现有确诊, 累计确诊增量, 死亡增量, 治愈增量, 现有确诊增量])result _ in=result[ component ][0][ caseList ]data _ out=result[ component ][0][ global list ] area-大多为省份城市-城市已确认-累计crued -值域相对时间-确定的相对-累计的增量治愈相对-值域的增量姜黄公司现有确镇curConfirmRelative现有确镇的增量 for each in result _ in:temp _ list=[each[ area ],each[ confirm ],each[ dead ],each[ confirm relative ],each[diedRelative],each[curedRelative],each[ cured relative ],each[curConfirmRelative],each[ curConfirm relative ],for I in range(len(temp _ list)):if temp _ list[I]= :temp _ list[I]=追加(在获取国外疫情数据对于每个in data _ out:sheet _ title=each[ area ]#创建一个新的工作表ws _ out=WB。创建工作表(工作表标题)ws _ out。追加([国家, 累计确诊, 死亡, 治愈, 现有确诊, 累计确诊增量])for country in each[ subList ]:list _ temp=[country[ country ],country[ confirm ],country[curConfirm],country[ confirm relative ]]for I in range(len(list _ temp)):if list _ temp[I]= :list _ temp[I]= 0 ws _ out .追加(list _ temp)WB。保存(./data.xlsx)
结果如下:
国内:
国外:
推荐: 020 持续更新,精品小圈子每日都有新内容,干货浓度极高。结实人脉、讨论技术你想要的这里都有!抢先入群,跑赢同龄人!(入群无需任何费用)点击此处,与计算机编程语言开发帅气的大白一起交流学习群号:858157650 申请即送:Python软件安装包,Python实战教程资料免费领取,包括计算机编程语言基础学习、进阶学习、爬虫、人工智能、自动化运维、自动化测试等