范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

爬虫闲谈数据处理

  个人公众号 yk 坤帝
  获取更多学习资料
  之前我们讨论了一下请求和响应,接下来几天我们都会讨论对数据的处理。
  接触了爬虫这个领域,大家肯定都听过正则表达式的鼎鼎大名,不过今天我们暂时不谈正则,我们先来讨论一下数据的简单处理,为之后的正则表达式做准备。
  我们用requests.get或requests.post获取到网页的源码,通过BeautifulSoup解析之后,得到的数据还是可能千奇百怪的,可能多了空格,可能有些内容我们不需要等等,所以我们应该对这些数据进行简单的处理。
  首先,来看第一种情况,首尾很多空格的情况,下图是豆瓣电影Top250的图,如果我们想要获取电影上映年份/上映地点/电影类别,实际通过BeautifulSoup解析获取到的数据并不是我们想要的结果。
  movie = """ 1994 / 美国 / 犯罪 剧情 """  # 我们实际能获取到的数据是这样的,现在我们要去掉首尾多余的空格,可以这么做 movie = movie.strip()  # strip()表示去除首尾的空格,这个对字符串的处理用得非常多  # 得到的结果就是1994 / 美国 / 犯罪 剧情
  经过strip()处理之后,可以看到得到得结果中仍然还是有空格,这个就可以用replace来替 换掉空格。 个人公众号 yk 坤帝  获取更多学习资料  movie = """ 1994 / 美国 / 犯罪 剧情 """ movie = movie.strip() #  得到的结果就是1994 / 美国 / 犯罪 剧情  movie = movie.replace(" ", "")  # 这一行表示将字符串中的空格替换掉,replace第一个参数表示要替换的字符串,第二个 参数表示要用什么来替换。  # 得到的结果就是1994/美国/犯罪剧情
  经过replace()处理之后,其实得到的数据已经可以了,但是,如果我们想分别提取出上映 年份/上映地点/电影分类呢。
  这个时候就用到我们之前用过的split了。 movie = """ 1994 / 美国 / 犯罪 剧情 """  movie = movie.strip()  # 得到得结果就是1994 / 美国 / 犯罪 剧情 movie = movie.replace(" ", "")  # 得到的结果就是1994/美国/犯罪剧情 movie = movie.split("/")  # 这一行表示将字符串通过/进行分割,得到的是一个列表  # 得到的结果是["1994", "美国", "犯罪剧情"]
  通过strip和replace和split就能得到我们想要的结果了,这三种字符串的处理方法会在处理 数据中经常使用。
  然后我们来看下第二种情况,是关于URL拼接问题的,假设我们现在要爬取知乎首页的超链 接,然后顺着爬取到的超链接一直深入爬下去,这样就能爬取整个知乎了。
  下图是知乎首页其中一个问题的URL,可以发现这个URL并不完整,需要拼接上当前的域名 才能构成一个完整的URL。
  我们当然可以用https://www.zhihu.com和这个URL拼接起来,但是这样又有一个问题,我 们是想要获取到知乎的所有URL,有的URL是带了https://www.zhihu.com的,这样再拼接 一下,就容易出错,所以我们需要预先处理一下。这就需要用到startswith方法了。
  个人公众号 yk 坤帝  获取更多学习资料  origin_url = "https://www.zhihu.com"   url_list = ["/question/36539555/answer/595275293", "/question/308663552/a nswer/577063117", "https://www.zhihu.com/special/20743868"]   for i in range(len(url_list)): 	if not url_list[i].startswith("http"): 	# 这一行表示如果url_list[i]不是以http开头的话,那么就执行if内部的语句  	url_list[i] = origin_url + url_list[i] 	print(url_list)  	  	# 得到的最终结果是["https://www.zhihu.com/question/36539555/answer/5952752 93", "https://www.zhihu.com/question/308663552/answer/577063117", "https:// www.zhihu.com/special/20743868"]
  通过startswith提前判断一下,就能够得到我们想要的结果了。当然有startswith,自然而 然会有endswith,同样举个例子来看。 个人公众号 yk 坤帝  获取更多学习资料  url_list = ["https://pic2.zhimg.com/50/v25502c54842dceeb2e8901e884407a7fd_fhd.jpg", "https://www.zhihu.com/special/20743868"]  for url in url_list: 	if url.endswith("jpg"): 	 	# 这一行表示如果url是以jpg结尾的话,就执行if内部的语句 		url_list.remove(url) 6 print(url_list)  		 # 最终结果是["https://www.zhihu.com/special/20743868"]
  通过startswith和endswith可以用来过滤我们不想要的字符串,并对其进行操作。
  最后,我们再来谈一个join方法,这个方法是用来拼接一个序列(列表/元组等)的值的, 将一个序列转换一个字符串。
  下图是豆瓣中一本书的详情页,每本书都有他的标签,有的时候为了方便存储,我们需要将 这些标签连起来组成一个字符串,我们就可以用join来操作了。
  # 上图我们用爬虫去爬取书籍的标签的话,得到的是tag这样的一个列表  tag = ["文学", "短篇小说", "小说", "先锋文学"]  tag = "-".join(tag)  # 这一行表示用"-"符号将tag这个列表中的每个值连接起来,得到的是一个字符串  # 最终结果是"文学-短篇小说-小说-先锋文学"
  好了,今天的分享本来就到这里结束了,但还是忍不住要插一个列表的去重,因为真的经常 会用到。
  有这样一个需求,一本书总共有600000个英文单词,保存在了一个列表中,现在想要统计 如果想要阅读这本书,需要多少得词汇量,那么我们面对得问题就是去重。
  我们直接看代码: 个人公众号 yk 坤帝  获取更多学习资料  # 实现功能:将列表中相同的元素去重,统计书籍词汇量   content = ["Whatever", "is", "worth", "doing",  "is", "worth", "doing", "well"]  new_content = set(content)  # 这一步是将列表转换成集合,就去重成功了,因为集合内的元素是不能重复的,但它是无 序的  new_content = list(new_content)  # 这一步是将上一步得到的集合转换成一个列表,这样就得到了最终结果列表了 print(new_content)  # 得到的结果是["worth", "Whatever", "is", "doing", "well"]  print(len(new_content))  # 得到的结果是5,说明这本书的词汇量是5个
  至此,我们总共讨论了字符串的6种常用方法,分别是strip、replace、split、startswith、 endswith、join,以及列表的去重。 明天我们开始来讨论正则表达式,大家加油。
  个人公众号 yk 坤帝
  获取更多学习资料

熟悉的荣耀回来了,首发骁龙778G100W闪充,网友终于等到了荣耀手机之前在国内销量非常好,国内用户也非常认可,在线上市场,颇有跟小米平分秋色之势。然而,华为遭到供应链断货,变得举步维艰后,荣耀整个品牌也因此被华为打包出卖了,据说华为获得了1价格低,空间大,续航足,配置高,解析比亚迪秦PLUSEV比亚迪,一个最初造手机电池的公司,却成了中国一线汽车品牌,而且它的新能源技术已经达到了世界领先水平,并且依然保持着国产车高性价比的特点,下面要说的是秦PLUSEV,虽说这台车定位较飞猪又现大数据杀熟价格最大差值达到35元?大数据杀熟,一场技术作恶的狂欢,如今仍在互联网的隐秘角落不断上演。2021年3月24日,一名匿名用户在黑猫投诉飞猪APP大数据杀熟。他是飞猪F3会员,他的同类房型价格比朋友高出60尼康D8002470怎样照月亮?尼康D8002470怎样照月亮?这样的组合基本上拍不成。当然可以拍摄到一个白点形式的月亮画面。尼康D800机身拍摄是没有问题的,关键是镜头,拍摄月亮一般得用长焦镜头。我们有时会看到拼多多2块钱还包邮,你认为商家亏钱赚吆喝,其实他赚得更多拼多多上面有各种低价的产品,其实大部分产品都是30元以下,有的甚至几毛钱,一块多钱,两块多钱,三块多钱,用过拼多多都知道。然后有一些朋友会很奇怪,这么低价的产品,1块多钱1块91块富士康以AI取代肉眼验货,3人可做400人工作准确率达98!随着人工智能及机器学习技术不断进步,厂方亦不断引进有关技术,希望提高生产效率。如今,富士康在GTC2019期间,展出了旗下的AI检验系统,以电脑视觉取代传统人手验货工序,提高精准度这个工具你还不了解,怎么能更有效率的工作这个工具是什么呢?就是Excel。Excel是微软Microsoft为Windows操作系统编写的一款软件,属于MicrosoftOffice办公软件之一,通常又叫做电子表格。由于离职后,如何优雅地退出工作群?牢记这两点,很实用现在互联网已经遍布各个领域,微信QQ等聊天软件已然成为职场中的日常工作沟通的主要工具。一个职场人可能会有好多账号,加入了几个甚至十几个与工作相关的微信群。其实现在不管是工作还是生活固态硬盘剩余空间越少越慢越容易坏,那我买固态就不能用来存很多东西,硬盘还叫硬盘么?固态硬盘虽然存储速度快,但写入数据存在擦写磨损,长期频繁写入数据,会导致固态硬盘的性能下降,甚至影响固态硬盘的寿命,所以固态硬盘并不适合于当做数据存储盘使用。一般建议将固态硬盘作为雷军这次大方了,1亿120W仅售2199元,还等什么618声明原创不易,禁止搬运,违者必究!现在人购买手机都去哪里买?自从电商时代开启之后,手机市场的销货渠道也从线下到线上的转变,手机厂商们纷纷布局线上平台。曾经人潮汹涌的手机卖场,如今门英媒初创企业全球涌现撼动硅谷来源环球时报英国经济学人周刊4月16日(提前出版)文章,原题硅谷依然可以主导全球创新吗?傍晚漫步在印度班加罗尔HSRLayout区第17交叉路,你会遇到一些技术人员走出他们的公司,
华为发布公告,这是最后的办法文考拉科技馆华为发布公告,这是最后的办法!自从芯片渠道被美国阻断后,华为手机业务的日子相当不好过,新机发布频率大大降低,而即便是发布新机,备货量也不会很多,基本是长期处于缺货状态。拿出500亿分红,身处困境的华为,为什么还要分这么多钱?文谛林审核子扬校正知秋2020年下半年禁令生效以来,华为的动向一直是业内外广泛关注的焦点。了解华为现状的消费者应该都清楚,这家中国科技公司当下的处境不容乐观。虽然在任正非的领导下,有你的手机吗?国产手机年度十一人阵容出炉光阴似重炮轰门,咻的一声2021年就已经过去,在这一整年里发布的手机可真是好不热闹,虽然由于芯片产能问题大家厂商都经历着艰难的一年,但国产手机也并没因此退缩,带来了一部又一部令我们国产手机品牌,谁在玩机海战术?我觉得这个问题应该问题的是国产手机品牌当中,谁家没有在玩机海战术,好像没有谁家了,基本大大小小的品牌都有两三款以上的机型,大的手机厂商一年要发行十几款的手机!国产手机当中有些品牌从iPhoneXR的屏幕在手机LCD屏幕中处于什么水平?最好的720P分辨率LCD屏幕。而苹果计算分辨率的算法和国内厂商不一样,而这块LCD屏幕达到视网膜屏幕的标准,屏幕PPI为326。其清晰度虽然比不上iPhoneXS系列,但在平时使高通的处理器越来越差劲,因为没有竞争所以摆烂?高通的这几代处理器连续翻车,从骁龙888开始就被用户冠以火龙的称号。到了骁龙888依旧如此,本以为去年年末高通骁龙会重视其高功耗,高发热的问题并加以改善。结果大家等来的是骁龙8Ge为什么一些看起来冷清的手机店卖不了几部手机,却依然活得很滋润我们看到的很多手机实体店,大多数都是以下这几个牌子,一个是vivo,一个是OPPO小米苹果还有就是华为。有些手机店它是属于运营商捆绑的挂牌店,他是不会指望通过卖手机赚钱的,手机卖了从数仓的角度看ApacheDruidApacheDruid是一种新型的数据库,可用于对事件驱动的数据进行实时分析。Druid整合了数据仓库(如面向列的存储)的架构思想,同时也整合了搜索系统和时间序列数据库的设计思想。JAVA冷知识JAVA居然支持多继承吗?让我们用内部类去实现吧写在前面JAVA冷知识,今天和小伙伴分享的是通过内部类的方式实现JAVA的多继承一个Demo和JDK源码中的具体场景部分内容参考编写高质量代码(改善Java程序的151个建议)Ef情人节小米手机开始发力,曲面屏3200万柔光自拍,跌至2299元情人节又被称之为情人劫,因为在这个节日前后分手的情侣也非常多,其中很多矛盾都是因为礼物,按理来说情人节了给对象买个礼物很正常,但是礼物这种东西真的不好挑,价格低了对方容易不喜欢,价iPhone14有望上C口!网友你出我必买还记得传得沸沸扬扬的欧盟TypeC统一事件吗?我们此前进行了多次报道,事件发生于2021年9月23日,欧盟委员会发起了一项立法建议,表示将TypeC接口作为欧盟境内所有智能手机平板