Python爬虫从入门到精通
文章平均质量分 80
《Python爬虫从入门到精通》系列以一个仅会Python基础的程序员的角度深入讲解了Python爬虫理论及实战。数据作为数据科学领域的基石具有十分重要的意义,而爬虫作为数据获取中一个重要的手段值得各位希望从事数据科学领域的朋友们学习理解。
von Neumann
技术日新月异,人类生活方式正在快速转变,这一切给人类历史带来了一系列不可思议的奇点。我们曾经熟悉的一切,都开始变得陌生。
展开
-
Python爬虫从入门到精通——爬虫基础:HTTP基本原理
分类目录:《Python爬虫从入门到精通》总目录在本文中,我们会详细了解HTTP的基本原理,了解在浏览器中敲入URL到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一步了解爬虫的基本原理。URI和URLURI的全称为Uniform Resource ldentifier,即统一资源标志符,URL的全称为Universal Resource Locator,即统一资源定位符。举例来............原创 2019-04-20 20:23:33 · 68067 阅读 · 0 评论 -
Python爬虫从入门到精通——解析库XPath的使用
分类目录:《Python爬虫从入门到精通》总目录在《爬取猫眼电影排行Top100》中我们用requests和正则表达式实现了一个最基本的爬虫。但提取页面信息时使用的是正则表达式比较烦琐,而且万一有地方写错了,可能导致匹配失败,所以使用正则表达式提取页面信息多多少少还是有些不方便。而对于网页的节点来说,它可以定义id、class或其他属性。而且节点之间还有层次关系,在网页中可以通过XPath或CS...原创 2019-05-28 20:16:03 · 23913 阅读 · 1 评论 -
Python爬虫从入门到精通——解析库pyquery的使用
分类目录:《Python爬虫从入门到精通》总目录在《解析库Beautiful Soup的使用》中,我们介绍了Beautiful Soup的用法,它是一个非常强大的网页解析库,但如果你对Web有所涉及,如果你比较喜欢用CSS选择器,如果你对jQuery有所了解,那么这里有一个更适合你的解析库——pyquery。pyquery初始化像Beautiful Soup一样,初始化pyquery的时候,...原创 2019-06-06 15:05:34 · 12694 阅读 · 0 评论 -
Python爬虫从入门到精通——解析库Beautiful Soup的使用
分类目录:《Python爬虫从入门到精通》总目录在《解析库re的使用:正则表达式》中介绍了正则表达式的相关用法,但是一旦正则表达式写的有问题,得到的可能就不是我们想要的结果了。而且对于一个网页来说,都有一定的特殊结构和层级关系,而且很多节点都有id或class来作区分,所以我们也可以借助它们的结构和属性来提取。本文就来介绍一个强大的解析工具Beautiful Soup,它借助网页的结构和属性等特...原创 2019-06-03 19:41:12 · 14962 阅读 · 0 评论 -
Python爬虫从入门到精通——高级框架Selenium的使用(一):基础知识
分类目录:《Python爬虫从入门到精通》总目录在《Ajax数据爬取》中,我们了解了Ajax的分析和抓取方式,这其实也是JavaScript动态渲染的页面的一种情形,通过直接分析Ajax,我们仍然可以借助requests或urllib来实现数据爬取。不过JavaScript动态渲染的页面不止Ajax这一种,很多网站的分页部分是由JavaScript生成的,并非原始HTML代码,这其中并不包含A...原创 2019-06-26 16:54:16 · 12637 阅读 · 0 评论 -
Python爬虫从入门到精通——高级框架Selenium的使用(二):节点操作
分类目录:《Python爬虫从入门到精通》总目录在《高级框架Selenium的使用(一):基础知识》中我们了解了利用Selenium框架声明浏览器对象、访问页面等操作。事实上,Selenium可以同解析库XPath、BeautifulSoup、pyquery等等一样,对HTML进行解析。除此之外,Selenium还可以驱动浏览器完成各种操作,本文就阐述下Selenium的节点操作,后续的文章会继...原创 2019-06-26 18:25:17 · 11861 阅读 · 0 评论 -
Python爬虫从入门到精通——Ajax数据爬取(一):基本原理
分类目录:《Python爬虫从入门到精通》总目录有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。这是因为requests获取的都是原始的HTML文档,而浏览器中的页面则是经过JavaScript处理数据后生成的结果,这些数据的来源有多种,可能是通过Ajax加载的,可能是包含在HT...原创 2019-06-24 14:24:49 · 16677 阅读 · 0 评论 -
Python爬虫从入门到精通——Ajax数据爬取(二):分析方法
分类目录:《Python爬虫从入门到精通》总目录这里还以《Python爬虫从入门到精通——Ajax数据爬取(一):基本原理》中的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化。查看请求这里还需要借助浏览器的开发者工具,下面以Chrome浏览器为例来介绍。首先,用Chrome浏览器打开微博的链接,随后在页面中点击鼠标右键,从弹出的快捷菜单中选择“检查”选项,此时便会弹...原创 2019-06-24 14:53:33 · 16050 阅读 · 0 评论 -
Python爬虫从入门到精通——Ajax数据爬取(三):结果提取
分类目录:《Python爬虫从入门到精通》总目录这里还以《Python爬虫从入门到精通——Ajax数据爬取(一):基本原理》中的微博为例,接下来用Python来模拟这些Ajax请求,把马云微博内容爬取下来。分析请求打开Ajax的XHR过滤器,然后一直滑动页面以加载新的微博内容。可以看到,会不断有Ajax请求发出。选定其中一个请求,分析它的参数信息。点击该请求,进入详情页面。可以发现,这...原创 2019-06-24 15:58:35 · 17503 阅读 · 2 评论 -
Python爬虫从入门到精通——爬虫实战:爬取新浪微博内容
分类目录:《Python爬虫从入门到精通》总目录本文为实战篇,需提前学习《Python爬虫从入门到精通》中基本库requests的使用和Ajax数据爬取(一):基本原理、Ajax数据爬取(二):分析方法和Ajax数据爬取(三):结果提取的内容。这里我们用程序模拟这些Ajax请求,将我的前10页微博全部爬取下来。首先,定义一个方法来获取每次请求的结果。在请求时,page是一个可变参数,所以我们......原创 2019-06-24 16:19:51 · 26603 阅读 · 11 评论 -
Python爬虫从入门到精通——解析库re的使用:正则表达式
分类目录:《Python爬虫从入门到精通》总目录正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。对于爬虫,基于正则表达式,从HTML里提取想要的信息就非常方便了。正则表达式有特定的语法规则的。写好正则表达式后,就可以拿它去一个长字符串里匹配查找了。不论这个字符串里面有什么,只要符合我们写的规则,统统可以找出来。对于网页来说,如果想找...原创 2019-05-22 22:31:49 · 44180 阅读 · 15 评论 -
Python爬虫从入门到精通——爬虫实战:爬取猫眼电影排行Top100
本文为实战篇,需提前学习[《Python爬虫从入门到精通》基本库requests的使用和正则表达式的内容。我们需要抓取的目标为猫眼电影-榜单-TOP100榜,其地址为:[https://maoyan.com/board/4](https://maoyan.com/board/4)。我们希望爬取各个电影的排名、名称、主演、上映时间、上映地区等信息。最后保存为一张Excel表格。原创 2019-05-26 17:11:24 · 42519 阅读 · 10 评论 -
Python爬虫从入门到精通——爬虫基础(三):网页基本原理
分类目录:《Python爬虫从入门到精通》总目录网页的组成网页可以分为三大部分——HTML、CSS和JavaScriptHTML:HTML是用来描述网页的一种语言,其全称叫作Hyper Text Markup Language,即超文本标记语言。网页包括文字、按钮、图片和视频等各种复杂的元素,其基础架构就是HTML。不同类型的文字通过不同类型的标签来表示,如图片用img标签表示,视频用vi...原创 2019-04-24 15:10:29 · 56901 阅读 · 0 评论 -
Python爬虫从入门到精通——爬虫基础(四):会话和Cookies
分类目录:《Python爬虫从入门到精通》总目录在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且很长时间都不会失效。这里面久涉及会话(Session)和Cookies的相关知识。静态网页和动态网页在开始之前,我们需要先了解一下静态网页和动态网...原创 2019-04-24 19:20:28 · 57435 阅读 · 0 评论 -
Python爬虫从入门到精通——爬虫基础:爬虫基本原理
我们可以把互联网比作一张大网,而爬虫便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了。简单来说,爬虫就是获取网页并和信息的。.........原创 2019-04-20 14:23:43 · 63579 阅读 · 2 评论 -
Python爬虫从入门到精通——爬虫基础(五):代理基本原理
分类目录:《Python爬虫从入门到精通》总目录我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阀值,就会...原创 2019-05-05 13:50:00 · 55585 阅读 · 0 评论 -
Python爬虫从入门到精通——请求库Urllib的使用(二):处理异常
分类目录:《Python爬虫从入门到精通》总目录在《基本库Urllib的使用(一):发送请求》文章中,我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的。urllib的error模块定义了由request模块产生的异常。如果出现了问题,request模块便会抛出error模块中定义的异常...原创 2019-05-08 12:15:16 · 51042 阅读 · 0 评论 -
Python爬虫从入门到精通——请求库Urllib的使用(一):发送请求
分类目录:《Python爬虫从入门到精通》总目录在Python2中,有urllib和urllib2两个库来实现请求的发送。而在Python3中,已经不存在urllib2这个库了,统一为urib,其官方文档链接为:https:/docs.python.org/3/library/urlib.html。首先,了解一下urllib库,它是Python内置的HTTP请求库,也就是说不需要额外安装即可使...原创 2019-05-05 21:52:24 · 49882 阅读 · 0 评论 -
Python爬虫从入门到精通——请求库Urllib的使用(三):解析链接
分类目录:《Python爬虫从入门到精通》总目录在《基本库Urllib的使用(一):发送请求》文章中提到,urllib库里还提供了parse模块,它定义了处理URL的标准接口,例如实现URL各部分的抽取、合并以及链接转换。它支持如下协议的URL处理:file、ftp、gopher、hd、http、https、imap、mailto、mms、news、nntp、prospero、rsync、rts...原创 2019-05-08 16:59:07 · 56318 阅读 · 0 评论 -
Python爬虫从入门到精通——请求库Urllib的使用(四):Robots协议
分类目录:《Python爬虫从入门到精通》总目录利用urllib的robotparser模块,我们可以实现网站Robots协议的分析。Robots协议也称作爬虫协议、机器人协议,它的全名叫作网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取。它通常是一个叫作“robots.txt”的文本文件,一般放在网站的根目录下。当...原创 2019-05-08 20:24:09 · 57400 阅读 · 0 评论 -
Python爬虫从入门到精通——请求库requests的使用(二):高级用法
分类目录:《Python爬虫从入门到精通》总目录在《基本库requests的使用(一):基本用法》中,我们了解了requests的基本用法,如基本的GET、POST请求以及Response对象。在本文中,我们来了解下requests的一些高级用法,如文件上传、Cookies设置、代理设置等。文件上传我们知道requests可以模拟提交一些数据。假如有的网站需要上传文件,我们也可以用它来实现,...原创 2019-05-20 17:02:36 · 36419 阅读 · 2 评论 -
Python爬虫从入门到精通——请求库requests的使用(一):基本用法
分类目录:《Python爬虫从入门到精通》总目录在《基本库Urllib的使用》中,我们了解了urllib的基本用法,但是其中确实有不方便的地方,比如处理网页验证和Cookies时,需要写Opener和Handler来处理。为了更加方便地实现这些操作,就有了更为强大的库requests,有了它,Cookies、登录验证、代理设置等操作都不是事儿。urllib库中的urlopen()方法实际上是以...原创 2019-05-16 16:37:16 · 42374 阅读 · 0 评论 -
Python爬虫从入门到精通——爬虫实战:爬取今日头条图片新闻
分类目录:《Python爬虫从入门到精通》总目录本文为实战篇,需提前学习Python爬虫从入门到精通中《基本库requests的使用》和《Ajax数据爬取(一):基本原理》、《Ajax数据爬取(二):分析方法》和《Ajax数据爬取(三):结果提取》的内容。在抓取之前,首先要分析抓取的逻辑。打开今日头条的首页,并在右上角有搜索入口搜索“图片新闻”。这时打开开发者工具,查看所有的网络请求。首先...原创 2019-06-24 20:45:22 · 17360 阅读 · 2 评论