神级程序员教你从零基础到实战!这才是数据分析!史上最全!

  • A+
所属分类:编程语言

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

创建爬虫

网络链接

网络浏览器是一个非常有用的应用,它创建信息的数据包,发送它们,然后把你获取的数据解释成漂亮的图像、声音、视频和文字。但是,网络浏览器就是代码,而代码是可以分解的,可以分解成许多基本组件,可重写、重用,以及做成我们想要的任何东西。网络浏览器可以让服务器发送一些数据,到那些对接无线(或有线)网络接口的应用上, 但是许多语言也都有实现这些功能的库文件。关于浏览器的相关介绍,可以参考维基关于浏览器的官方介绍。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

1
pip install beautifulsoup4

如果没有报错可以验证一下是否安装成功。验证的方式有很多。这里我举例两种最常用的验证方式。

第一种验证方式:终端直接查看包是否存在。

1
pip freeze | grep beautifulsoup4

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

这里的安装是全局安装,如果在实际开发中不同的项目可能会有不同的环境或者版本要求,甚至会产生冲突,现在就就需要的能够支持多种的环境的需求,可以用虚拟环境保存库文件。安装一个Python虚拟环境来分而治之。具体的使用方法这里不做过多阐述,后续会有对应的更新,你可以关注我就可以收到更新提示。

运行BeautifulSoup

结合之前抓取百度首页的代码,现在针对某网站的某文件进行抓取。如下:

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

1
html = urlopen("http://www.pythonscraping.com/pages/page1.html")

这里面会出现两个问题,服务器不存在或者这个页面不存在。也就是要么404,要么500

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

最后我们的判断是不是看起来代码特别的累赘,我们简单整理一下后,代码如下:

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

复杂的HTML解析

思考后确定获取目标

假如我们确定一个我们需要采集的目标信息,可能是一组统计数据、或者一个 title等,但是此时这个目标可能藏的比较深,可能在第20层的标签里面,你可能会用下面的方式去抓取:

bsObj.findAll("table")[4].findAll("tr")[2].find("td").findAll("div")[1].find("a")

同时还有一个问题,加入网站发生细微的变化。我们的代码不仅影响美观还回影响整个爬虫网络。这样的情况我们应该怎么做呢?

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

1
<span class="green"></span>

或者这样的:

1
<span class="red"></span>

爬虫可以根据class的属性值去区分不同的标签。例如:我们可以只抓取红色的字。

下面我们以这个网站为例来创建一个网络爬虫。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

通过上图可以知道红色的为对话正文部分,绿色为姓名的信息。现在可以创建一个简单的

下面我们以这个网站为例来创建一个网络爬虫。

通过上图可以知道红色的为对话正文部分,绿色为姓名的信息。现在可以创建一个简单的BeautifulSoup对象。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

第一类,处理子标签和其他后代标签。

子标签就是一个父标签的下一级,而后代标签是指一个父标签下面所有级别的标签。所有的子标签都是后代标签,但不是所有的后代标签都是子标签。例如:

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

输出的结果是打印产品列表里的所有行的产品,第一行表格标题除外。

第三类,父标签处理。

抓取网页的时候我们抓取父标签的情况比较少,但是不排除有这样的情况存在。例如,我们要观察网页的

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

正则表达式

正则表达式个人认为比较简单,就跟学习英语一样,只要不断的去用就了解了。贴上原图可查阅即可。关于正则的相关基础知识可以看看我推荐的网站了解一下,或者可以关注我,后续专门写一个正则表达式入门的文章。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

正则表达式和BeautifulSoup

结合正则表达式,来实现一下具体的例子,可能更容易理解一些。我们获取刚刚网站的所有图片,首先打开源码分析一下页面。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

主要内容:

单个域名和网站的采集;

互联网采集和用Scrapy采集初步介绍。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

遍历整个网络

采集整个网站,那是非常耗费内存资源的过程,尤其是处理大型网站时,最合适的工具就是用一个数据库来储存采集的资源。

遍历整个网络的数据好处:可以生产网站地图,收集网站数据等。但是一般不会消耗大量的内存资源去做采集,本节的意义不大。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

关于Scrapy的内容我们后续逐一介绍,大家可以点击关注,及时收到后续更新。

神级程序员教你从零基础到实战!这才是数据分析!史上最全!

未完待续!!!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: