- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
requests库技术应用案例——动态数据和动态数据采集;本章学习目标
分析业务网站A,B,C和D的网页结构和内容
使用requests库编写爬虫代码获取指定的静态和动态数据
使用BeautifulSoup实现数据的解析
使用pymysql库和pandas实现数据的持久化;4.3业务网站A静态数据;判断此数据是静态数据还是动态数据。如图4.3-2所示,由此可知,我们想要获取的内容被标签直接包含在内,为静态数据,所以可以编写爬虫获取网页标签内容即可;网页分页爬取的翻页操作实现
对保存网页的变量complete_url进行操作,设置首先观察网页,如图4.3-7所示
;由此我们可以知道,后缀subcate16_0_list_1_0_99_2_0_X控制网页的页数,所以我们可以自定义for循环使X的值不同,以达到去到不同页面的目的,使用str函数将其拼接在网址后,从而得到新网页地址。
fornuminrange(1,3):
complete_url=detail.zol.cn/notebook_index/subcate16_0_list_1_0_99_2_0_+str(num)+.html
print(complete_url);4.3.4数据预处理
1)导入指定的库
importre
importpandasaspd
fromscipy.statsimportzscore
fromtabulateimporttabulate
2)自定义方法main(),作为实现调用其他数据预处理自定义方法的入口。
defmain():
#1数据读取
laptops=pd.read_excel(zgc_pages.xlsx,skiprows=1,
usecols=lambdax:xnotin[0])
laptop=pd.read_excel(zgc_new.xlsx)
#2数据集成
lap_con=pd.concat([laptop,laptops],axis=0)
#3探索清理数据
laptops_new=check_data(lap_con)
#4数据转换
result=transform_data(laptops_new)
print(tabulate(result,headers=keys,tablefmt=pretty));3)自定义check_data(laptops)方法用于数据探索、数据清理和数据规约操作。
defcheck_data(laptops):
#1.探索数据
#查看前几行数据
print(laptops.head())
#查看列名
laptops_colmuns=laptops.columns
print(laptops.info())
#2.数据清理
#2.1清理缺失值
#2.1.1判断缺失值位置
print(laptops[评分].isnull())
#2.1.2删除缺失值
laptops.drop(index=laptops[laptops[评分].isnull()].index,inplace=True)
laptops.drop(index=laptops[laptops[配置].isnull()].index,inplace=True)
#2.2清理重复值
#2.2.1判断重复值位置
print(laptops.duplicated())
#2.2.2删除重复值
print(laptops.drop_duplicates(inplace=True))
#2.3.1判断异常值计算z分数,判断是否超过阈值
z_scores=zscore(laptops[评分])
valid_rating_condition=(z_scores-3)(z_scores3)
#2.3.2清理异常值
laptops_new=laptops[valid_rating_condition]
returnlaptops_new;4)自定义transform_data(laptops_new)方法用于数据转换操作。
deftransform_data(laptops_new):
#是否允许链式索引。
pd.set_option(mod
文档评论(0)