分享

80行快乐代码与你窥探爬虫的数据深渊——教你如何高效快速任意爬虫(附大量项目案例和语法解析文章)

 好汉勃士 2021-04-10

目录

爬虫之迷惑?

小白疑问?

爬虫到底是什么?

学习爬虫从初识爬虫开始

初识爬虫之概念认知篇

初识爬虫之安装准备篇

Python语法入门到精通

初识爬虫之基本原理篇

初识爬虫之爬虫概述篇

初识爬虫之urllib库使用篇

初识爬虫之requests库使用篇

初识爬虫之Xpath语法篇

爬虫之案例集合

Python爬取全网文字并词云分析(全程一键化!)

Python爬取微博热搜数据之炫酷可视化

站在上帝的角度挖掘数据——Python抓取10W+社科基金项目并可视化分析

Python爬取养老信息网案例

项目介绍

项目实现

完整源码点击此处下载!亲测可用!!!直接运行!!

数据集点击此处下载!!

每文一语


爬虫之迷惑?

小白疑问?

什么是爬虫?爬虫真的是虫虫吗?为什么叫爬虫呀?为什么不叫抓虫呀?哈哈哈哈,如果你是第一次接触爬虫或者Python那么你一定要仔细看完前期介绍。

爬虫顾名思义,就是爬虫,哈哈哈。

在互联网的汪洋大海里面,一切皆数据,前端工程师把数据和网页完美的结合在一起,他们以为这样是最美丽的契合,殊不知,后端的那些工程师宝宝们,一天没事干,把他们的老窝给惊扰了,爬虫给网站带来的危害是比较大的,如果一个服务器一般被很多用户访问,可能它会宕机,也可能会崩溃,那么一个机器通过编程手段来达到这个目的,一分钟的点击次数,同时点击所达到的次数,机器不会累,于是网站被他们端了。一切都要恰到好处,于是他们商量好了,礼貌的访问,隐隐约约的访问,悄悄咪咪的访问,有节制的去获取数据,慢慢的前端工程师和后端工程师关系越来也好了,最终他们诞生了幸福的结晶——大数据工程师!

哈哈哈,以上纯属娱乐,不做参考,不喜勿喷哟!

爬虫到底是什么?

简单来讲,爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。

你可以简单地想象:每个爬虫都是你的「分身」。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。

你每天使用的百度,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,然后化好淡妆排着小队等你来检索。
抢票软件,就相当于撒出去无数个分身,每一个分身都帮助你不断刷新 12306 网站的火车余票。一旦发现有票,就马上拍下来,然后对你喊:土豪快来付款。

爬虫的那些操作

爬虫也分善恶。

像谷歌这样的搜索引擎爬虫,每隔几天对全网的网页扫一遍,供大家查阅,各个被扫的网站大都很开心。这种就被定义为「善意爬虫」。

但是,像抢票软件这样的爬虫,对着 12306 每秒钟恨不得撸几万次。铁总并不觉得很开心。这种就被定义为「恶意爬虫」。(注意,抢票的你觉得开心没用,被扫描的网站觉得不开心,它就是恶意的。)

我们都是善意爬虫,因为我们有礼貌的去获取数据

学习爬虫从初识爬虫开始

之前我们写过很多关于爬虫的案例和语法合集,这里可以点击查看!逐渐更新中...........

初识爬虫之概念认知篇

带你认识什么是爬虫,如何用语文阅读的方式去理解编程,去感受爬虫的快乐!曾经有人说过,爬虫可以给他带来美感,我认为爬虫确实可以滴,不只是美感,而且还可以是快乐的美感哟!

初识爬虫之安装准备篇

爬虫必然要用到第三方库,这也是爬虫选择Python的原因之一,因为Python是一个富含维生素C的水果,哈哈哈,搞错了,是不是最近养成了吃VC的小习惯,被键盘知道了,哈哈哈,大家要记得多吃水果和蔬菜,补充微量元素哟!身体是你们赚钱的本钱,带你走向致富的道路!(#^.^#)

因为Python是一个拥有大量的第三方库的编程语言,之所以它被大数据和人工智能所青睐,那就是它的快速便捷,同比其他语言来说,它的优点就是简单但不失高级,晦涩但又不难理解,说的我们都快心动了,哈哈,如果你也想要学Python,快去看看这个专栏吧!带你从0到1,走向高薪职业哟!

Python语法入门到精通

初识爬虫之基本原理篇

爬虫的基本原理就像是我们小时候学习拼音那样,认识音节,知道如何去读,然后再去教你如何去写,爬虫也是这样,俗话说:知己知彼百战百胜

初识爬虫之爬虫概述篇

我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。 把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息 。 可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了 。

初识爬虫之urllib库使用篇

初识爬虫之requests库使用篇

爬虫的基本思维就是,获取数据,存储数据,当然获取数据:就包括请求数据,然后解析数据,最后有选择性的去存储数据,这里两篇的技术文章,详细的介绍了爬虫的请求数据语法案例

初识爬虫之Xpath语法篇

之后就是解析数据了,最常的就是Xpath,beautifulsoup,正则表达式等,当然看你个人喜好和掌握程度,如果你喜欢简单快速的推荐使用Xpath和beautifulsoup,但是你必须要有足够的知识储备,这样才不会被一些坑坑过,要不然就去使用正则表达式,虽然繁琐,但是屡试不爽,哈哈哈!

爬虫之案例集合

我推荐两篇我个人觉得参考价值和娱乐性相对于比较高的三篇技术文章!

Python爬取全网文字并词云分析(全程一键化!)

一键化的操作,还是比较的舒服!

Python爬取微博热搜数据之炫酷可视化

文章里面有一个演示视频,还有bjm哟,哈哈哈,微博热搜,当时也是让这篇文章上了热搜了!

站在上帝的角度挖掘数据——Python抓取10W+社科基金项目并可视化分析

绝不是标题党,内容更真实!只要你点击去,或者关注哟!

在我看来,爬虫绝对不是简单获取数据那样,如果学习爬虫不是为了帮助减轻工作或者学习的烦恼,那就没有灵魂了!

Python爬取养老信息网案例

说了这么多的,当然绝对不是废话哈,磨刀不误砍柴工,如果你了解了这些基本的东西,学习起来也不会感到枯燥的!

项目介绍

有这样一个网站,它包含了中国的养老机构的信息,里面的数据可以作为科研人的资源,但是他们就是觉得有点麻烦,如果手动去找数据的话,于是我又踏上了帮助人的道路了

哈哈哈哈,加油!

项目实现

完整源码点击此处下载!亲测可用!!!直接运行!!

数据集点击此处下载!!

导入第三方库

  1. import requests
  2. from lxml import etree
  3. from fake_useragent import UserAgent
  4. import pandas as pd
  5. import time

请求数据部分源码

  1. b = 0
  2. a += 1
  3. res = requests.get(url='http://www./yanglaoyuan/yly/?RgSelect=02301&page={}'.format(j),
  4. headers=headers)
  5. res.encoding = 'UTF-8'
  6. html = res.text
  7. html_ = etree.HTML(html)
  8. text_1 = html_.xpath('//div[@class='jiadiantulist']/ul[1]/a/@href')

这个主页的信息太少了,我们需要点击去,要这里面的全部数据

有小伙伴想到了模拟点击,但是我也去试过,但是发现速度非常的慢,我们如果是要获取少量的数据还好,如果很多的数据,那就完蛋了,太慢了!

于是我又重新找到了另外一个方法,在爬虫里面嵌套一个爬虫获取页面当单个的网址,这样就可以实现速度和数据并存运行了,果然效果还不错!

双层循环,递归操作,完美结合!

解析数据

  1. # 解析数据
  2. name = html_.xpath('//div[@class='leftcontext_left']/div[1]/label/text()')
  3. for text in name:
  4. get_info['机构名称'] = text
  5. time.sleep(1)

储存数据部分源码

  1. df.to_csv('养老.csv', mode='a+', index=False, encoding='utf-8')
  2. count += 1
  3. get_info_list.clear()
  4. texts = html_.xpath('//div[@class='leftcontext']//text()')
  5. aa = list(texts)
  6. index = aa.index('养老信息网提示您:')
  7. v = list(texts)[:index]
  8. c = []
  9. for x in v: # 遍历b这个,去除里面的特殊字符
  10. if x in '●\r\n':
  11. continue
  12. else: # 分别分出有意义的词组,因为对于一个词的,分析没有太大的意义
  13. c.append(x) # 存储1词组变量
  14. with open(r'文本.txt', 'a+', encoding='utf-8') as file:
  15. file.write('\t\t\t\t' + text)
  16. for i in c:
  17. file.write('\n'.join(i.split()) + '\n')
  18. print('第1页第1条数据写入!!!') # 写入第一行表头加数据,表头默认

主函数

  1. if __name__ == '__main__':
  2. # 定义一些变量
  3. ua = UserAgent() # 解决了我们平时自己设置伪装头的繁琐,此库自动为我们弹出一个可用的模拟浏览器
  4. headers = {'User-Agent': ua.random}
  5. Data()
  6. print('感谢你使用本程序!')

数据获取完毕!

知识是不是需要付费?让我想起了一个博主,他说:“知识不付费,永远学不会”

本期的文章就更新到这里哟,关注我!学习Python和大数据,带你一起快乐代码!

每文一语

为你写诗,为你写时,为你做最浪漫的事!遇见才是美好,没有问号?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多