摘要: 有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 阅读全文
posted @ 2018-09-11 20:48 Shadow_Y 阅读(203) 评论(0) 推荐(0)
摘要: XPath简介 XPath是W3C的一个标准。它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计。目前有XPath1.0和XPath2.0两个版本。其中Xpath1.0是1999年成为W3C标准,而XPath2.0标准的确立是在2007年。W3C关于XPath的英文详细文档请 阅读全文
posted @ 2018-09-11 20:44 Shadow_Y 阅读(336) 评论(0) 推荐(0)
摘要: 递归 递归 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 扩展:函数名可以当做参数传递 函数名():执行函数 函数名:代指函数 示例: #斐波那契def f(a1,a2):if a1 > 100:returnprint(a1)a3 = a1 + a2f(a2, 阅读全文
posted @ 2018-09-11 18:58 Shadow_Y 阅读(128) 评论(0) 推荐(0)
摘要: 一、概述 socket,套接字。 套接字是一种源IP地址和目的IP地址以及源端口号和目的端口号的组合.网络化的应用程序在开始任何通讯之前都必须要创建套接字.就像电话的插口一样,没有它就没办法通讯. 它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址, 阅读全文
posted @ 2018-09-11 18:57 Shadow_Y 阅读(210) 评论(0) 推荐(0)
摘要: 大家好,我是四毛,下面是我的个人公众号,欢迎关注。有问题的可以私信我,看到就会回复。 更新 2018年08月03日14:39:32 其实可以利用scrapy的扩展展示更多的数据,立个flag,后面更新上来 好,开始今天的文章。 今天主要是来说一下怎么可视化来监控你的爬虫的状态。 相信大家在跑爬虫的过 阅读全文
posted @ 2018-09-11 18:55 Shadow_Y 阅读(770) 评论(0) 推荐(0)
摘要: 什么是(监督式)机器学习?简单来说,它的定义如下: 机器学习系统通过学习如何组合输入信息来对从未见过的数据做出有用的预测。 下面我们来了解一下机器学习的基本术语。 标签 在简单线性回归中,标签是我们要预测的事物,即 y 变量。标签可以是小麦未来的价格、图片中显示的动物品种、音频剪辑的含义或任何事物。 阅读全文
posted @ 2018-09-11 18:54 Shadow_Y 阅读(891) 评论(0) 推荐(0)
摘要: 本节我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里我们识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别。 验证码 首先我们来看下验证码是怎样的,这里我们使用 Python 的 captcha 库来生成即可,这 阅读全文
posted @ 2018-09-11 18:52 Shadow_Y 阅读(872) 评论(0) 推荐(0)
摘要: 大家好,我是四毛,最近开通了个人公众号“用Python来编程”,欢迎大家“关注”,这样您就可以收到优质的文章了。 今天跟大家分享的主题是利用python库twilio来免费发送短信。 先放一张成品图 代码放在了本文最后的地址中,欢迎有需要的自取,有任何也可以在评论或者后台直接私聊我。 正文 眼尖的小 阅读全文
posted @ 2018-09-11 18:52 Shadow_Y 阅读(3663) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 18:51 Shadow_Y 阅读(1) 评论(0) 推荐(0)
摘要: 原理 中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词。表面上看,分词其实就是那么回事,但分词效果好不好对信息检索、实验结果还是有很大影响的,同时分词的背后其实是涉及各种各样的算法的。 中文分词与英文分词有很大的不同,对英文而言,一个单词 阅读全文
posted @ 2018-09-11 18:50 Shadow_Y 阅读(10161) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 16:43 Shadow_Y 阅读(2) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 16:31 Shadow_Y 阅读(0) 评论(0) 推荐(0)
摘要: 用Splash做页面抓取时,如果爬取的量非常大,任务非常多,用一个Splash服务来处理的话,未免压力太大了,此时可以考虑搭建一个负载均衡器来把压力分散到各个服务器上。这相当于多台机器多个服务共同参与任务的处理,可以减小单个Splash服务的压力。 1. 配置Splash服务 要搭建Splash负载 阅读全文
posted @ 2018-09-11 16:14 Shadow_Y 阅读(357) 评论(0) 推荐(0)
摘要: Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取。 1. 功能介绍 利用Splash,我们可以实现如下功能: 异步方式处理多个网页渲染过程; 获取渲染后的页面的源代 阅读全文
posted @ 2018-09-11 16:09 Shadow_Y 阅读(5355) 评论(0) 推荐(1)
摘要: Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效。本节中,就让我们来感受一下它的强大之处吧。 1. 准备工作 本节以Chrom 阅读全文
posted @ 2018-09-11 16:08 Shadow_Y 阅读(1134) 评论(0) 推荐(0)
摘要: 在前一章中,我们了解了Ajax的分析和抓取方式,这其实也是JavaScript动态渲染的页面的一种情形,通过直接分析Ajax,我们仍然可以借助requests或urllib来实现数据爬取。 不过JavaScript动态渲染的页面不止Ajax这一种。比如中国青年网(详见http://news.yout 阅读全文
posted @ 2018-09-11 16:06 Shadow_Y 阅读(260) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 16:06 Shadow_Y 阅读(1) 评论(0) 推荐(0)
摘要: 这里仍然以微博为例,接下来用Python来模拟这些Ajax请求,把我发过的微博爬取下来。 1. 分析请求 打开Ajax的XHR过滤器,然后一直滑动页面以加载新的微博内容。可以看到,会不断有Ajax请求发出。 选定其中一个请求,分析它的参数信息。点击该请求,进入详情页面,如图6-11所示。 图6-11 阅读全文
posted @ 2018-09-11 16:05 Shadow_Y 阅读(491) 评论(0) 推荐(0)
摘要: 这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢? 1. 查看请求 这里还需要借助浏览器的开发者工具,下面以Chrome浏览器为例来介绍。 首先,用Chrome浏览器打开微博的链接https://m.weibo.cn/u/ 阅读全文
posted @ 2018-09-11 16:05 Shadow_Y 阅读(594) 评论(0) 推荐(0)
摘要: Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML。它不是一门编程语言,而是利用JavaScript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。 对于传统的网页,如果想更新其内容,那么必须要刷新整个 阅读全文
posted @ 2018-09-11 16:04 Shadow_Y 阅读(262) 评论(0) 推荐(0)
摘要: 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。这是因为requests获取的都是原始的HTML文档,而浏览器中的页面则是经过JavaScript处理数据后生成的结果,这些数据的来源 阅读全文
posted @ 2018-09-11 16:04 Shadow_Y 阅读(580) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 16:03 Shadow_Y 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 16:03 Shadow_Y 阅读(0) 评论(0) 推荐(0)
摘要: NoSQL,全称Not Only SQL,意为不仅仅是SQL,泛指非关系型数据库。NoSQL是基于键值对的,而且不需要经过SQL层的解析,数据之间没有耦合性,性能非常高。 非关系型数据库又可细分如下。 键值存储数据库:代表有Redis、Voldemort和Oracle BDB等。 列存储数据库:代表 阅读全文
posted @ 2018-09-11 16:01 Shadow_Y 阅读(145) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 16:00 Shadow_Y 阅读(0) 评论(0) 推荐(0)
摘要: 关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来保存的,所以它的存储方式就是行列组成的表,每一列是一个字段,每一行是一条记录。表可以看作某个实体的集合,而实体之间存在联系,这就需要表与表之间的关联关系来体现,如主键外键的关联关系。多个表组成一个数据库,也就是关系型数据库。 关系型数据库有 阅读全文
posted @ 2018-09-11 15:59 Shadow_Y 阅读(122) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 15:58 Shadow_Y 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 15:57 Shadow_Y 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 15:56 Shadow_Y 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 15:55 Shadow_Y 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 15:54 Shadow_Y 阅读(0) 评论(0) 推荐(0)
摘要: XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。 所以在做爬虫时,我们完全可以使用XPath来做相应的信息抽取。本节中,我们就来介绍XPath的基本用法。 1. XPath概 阅读全文
posted @ 2018-09-11 15:53 Shadow_Y 阅读(774) 评论(0) 推荐(0)
摘要: 上一章中,我们实现了一个最基本的爬虫,但提取页面信息时使用的是正则表达式,这还是比较烦琐,而且万一有地方写错了,可能导致匹配失败,所以使用正则表达式提取页面信息多多少少还是有些不方便。 对于网页的节点来说,它可以定义id、class或其他属性。而且节点之间还有层次关系,在网页中可以通过XPath或C 阅读全文
posted @ 2018-09-11 15:53 Shadow_Y 阅读(202) 评论(0) 推荐(0)
摘要: 本节中,我们看一下正则表达式的相关用法。正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。 当然,对于爬虫来说,有了它,从HTML里提取想要的信息就非常方便了。 1. 实例引入 说了这么多,可能我们对它到底是个什么还是比较模糊,下面就用几个 阅读全文
posted @ 2018-09-11 15:52 Shadow_Y 阅读(571) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-11 15:52 Shadow_Y 阅读(0) 评论(0) 推荐(0)
摘要: 在前一节中,我们了解了requests的基本用法,如基本的GET、POST请求以及Response对象。本节中,我们再来了解下requests的一些高级用法,如文件上传、cookie设置、代理设置等。 1. 文件上传 我们知道requests可以模拟提交一些数据。假如有的网站需要上传文件,我们也可以 阅读全文
posted @ 2018-09-11 15:51 Shadow_Y 阅读(499) 评论(0) 推荐(0)
摘要: 1. 准备工作 在开始之前,请确保已经正确安装好了requests库。如果没有安装,可以参考1.2.1节安装。 2. 实例引入 urllib库中的urlopen()方法实际上是以GET方式请求网页,而requests中相应的方法就是get()方法,是不是感觉表达更明确一些?下面通过实例来看一下: 1 阅读全文
posted @ 2018-09-11 15:50 Shadow_Y 阅读(482) 评论(0) 推荐(0)
摘要: 利用urllib的robotparser模块,我们可以实现网站Robots协议的分析。本节中,我们来简单了解一下该模块的用法。 1. Robots协议 Robots协议也称作爬虫协议、机器人协议,它的全名叫作网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引 阅读全文
posted @ 2018-09-11 15:49 Shadow_Y 阅读(545) 评论(0) 推荐(0)
摘要: 前面说过,urllib库里还提供了parse这个模块,它定义了处理URL的标准接口,例如实现URL各部分的抽取、合并以及链接转换。它支持如下协议的URL处理:file、ftp、gopher、hdl、http、https、imap、mailto、 mms、news、nntp、prospero、rsyn 阅读全文
posted @ 2018-09-11 15:47 Shadow_Y 阅读(339) 评论(0) 推荐(0)
摘要: 使用urllib的request模块,我们可以方便地实现请求的发送并得到响应,本节就来看下它的具体用法。 1. urlopen() urllib.request模块提供了最基本的构造HTTP请求的方法,利用它可以模拟浏览器的一个请求发起过程,同时它还带有处理授权验证(authenticaton)、重 阅读全文
posted @ 2018-09-11 15:46 Shadow_Y 阅读(529) 评论(0) 推荐(0)
摘要: 前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的。 urllib的error模块定义了由request模块产生的异常。如果出现了问题,request模块便会抛出error模块中定义的异 阅读全文
posted @ 2018-09-11 15:46 Shadow_Y 阅读(270) 评论(1) 推荐(0)
摘要: 在Python 2中,有urllib和urllib2两个库来实现请求的发送。而在Python 3中,已经不存在urllib2这个库了,统一为urllib,其官方文档链接为:https://docs.python.org/3/library/urllib.html。 首先,了解一下urllib库,它是 阅读全文
posted @ 2018-09-11 15:45 Shadow_Y 阅读(306) 评论(0) 推荐(0)
摘要: 我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个I 阅读全文
posted @ 2018-09-11 15:44 Shadow_Y 阅读(461) 评论(0) 推荐(1)
摘要: 在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且很长时间都不会失效,这种情况又是为什么?其实这里面涉及会话和Cookies的相关知识,本节就来揭开它 阅读全文
posted @ 2018-09-11 15:44 Shadow_Y 阅读(218) 评论(0) 推荐(0)
摘要: 我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网 阅读全文
posted @ 2018-09-11 15:43 Shadow_Y 阅读(402) 评论(0) 推荐(0)
摘要: 用浏览器访问网站时,页面各不相同,你有没有想过它为何会呈现这个样子呢?本节中,我们就来了解一下网页的基本组成、结构和节点等内容。 1. 网页的组成 网页可以分为三大部分——HTML、CSS和JavaScript。如果把网页比作一个人的话,HTML相当于骨架,JavaScript相当于肌肉,CSS相当 阅读全文
posted @ 2018-09-11 15:42 Shadow_Y 阅读(515) 评论(0) 推荐(0)
摘要: 在本节中,我们会详细了解HTTP的基本原理,了解在浏览器中敲入URL到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一步了解爬虫的基本原理。 1. URI和URL 这里我们先了解一下URI和URL,URI的全称为Uniform Resource Identifier,即统一资源标志符,UR 阅读全文
posted @ 2018-09-11 15:41 Shadow_Y 阅读(651) 评论(0) 推荐(1)
摘要: Gerapy是一个Scrapy分布式管理模块,本节就来介绍一下它的安装方式。 1. 相关链接 GitHub:https://github.com/Gerapy 2. pip安装 这里推荐使用pip安装,命令如下: 1 pip3 install gerapy 1 pip3 install gerapy 阅读全文
posted @ 2018-09-11 15:40 Shadow_Y 阅读(198) 评论(0) 推荐(0)
摘要: 安装好了Scrapyd之后,我们可以直接请求它提供的API来获取当前主机的Scrapy任务运行状况。比如,某台主机的IP为192.168.1.1,则可以直接运行如下命令获取当前主机的所有Scrapy项目: 1 curl http://localhost:6800/listprojects.json 阅读全文
posted @ 2018-09-11 15:39 Shadow_Y 阅读(619) 评论(0) 推荐(0)
摘要: Scrapyrt为Scrapy提供了一个调度的HTTP接口,有了它,我们就不需要再执行Scrapy命令而是通过请求一个HTTP接口来调度Scrapy任务了。Scrapyrt比Scrapyd更轻量,如果不需要分布式多任务的话,可以简单使用Scrapyrt实现远程Scrapy任务的调度。 1. 相关链接 阅读全文
posted @ 2018-09-11 15:39 Shadow_Y 阅读(783) 评论(0) 推荐(0)
摘要: 在将Scrapy代码部署到远程Scrapyd的时候,第一步就是要将代码打包为EGG文件,其次需要将EGG文件上传到远程主机。这个过程如果用程序来实现,也是完全可以的,但是我们并不需要做这些工作,因为Scrapyd-Client已经为我们实现了这些功能。 下面我们就来看看Scrapyd-Client的 阅读全文
posted @ 2018-09-11 15:38 Shadow_Y 阅读(182) 评论(0) 推荐(0)
摘要: Scrapyd是一个用于部署和运行Scrapy项目的工具,有了它,你可以将写好的Scrapy项目上传到云主机并通过API来控制它的运行。 既然是Scrapy项目部署,基本上都使用Linux主机,所以本节的安装是针对于Linux主机的。 1. 相关链接 GitHub:https://github.co 阅读全文
posted @ 2018-09-11 15:36 Shadow_Y 阅读(219) 评论(0) 推荐(0)
摘要: Docker是一种容器技术,可以将应用和环境等进行打包,形成一个独立的、类似于iOS的App形式的“应用”。这个应用可以直接被分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实现方案,和虚拟化技术类似,它极大地方便了应用服务的部署;又与虚拟化技术不 阅读全文
posted @ 2018-09-11 15:35 Shadow_Y 阅读(483) 评论(0) 推荐(0)
摘要: Scrapy-Redis是Scrapy的分布式扩展模块,有了它,我们就可以方便地实现Scrapy分布式爬虫的搭建。本节中,我们将介绍Scrapy-Redis的安装方式。 相关链接 GitHub:https://github.com/rmax/scrapy-redis PyPI:https://pyp 阅读全文
posted @ 2018-09-11 15:11 Shadow_Y 阅读(201) 评论(0) 推荐(0)
摘要: Scrapy-Splash是一个Scrapy中支持JavaScript渲染的工具,本节来介绍它的安装方式。 Scrapy-Splash的安装分为两部分。一个是Splash服务的安装,具体是通过Docker,安装之后,会启动一个Splash服务,我们可以通过它的接口来实现JavaScript页面的加载 阅读全文
posted @ 2018-09-11 15:07 Shadow_Y 阅读(237) 评论(0) 推荐(0)
摘要: Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted 14.0、lxml 3.4和pyOpenSSL 0.14。在不同的平台环境下,它所依赖的库也各不相同,所以在安装之前,最好确保把一些基本库安装好。本节就来介绍Scrapy在不同平台的安装方法。 1. 相关链接 官 阅读全文
posted @ 2018-09-11 15:05 Shadow_Y 阅读(210) 评论(0) 推荐(0)
摘要: pyspider是国人binux编写的强大的网络爬虫框架,它带有强大的WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时支持多种数据库后端、多种消息队列,另外还支持JavaScript渲染页面的爬取,使用起来非常方便,本节介绍一下它的安装过程。 1. 相关链接 官方文档:http:/ 阅读全文
posted @ 2018-09-11 15:04 Shadow_Y 阅读(285) 评论(0) 推荐(0)
摘要: Appium是移动端的自动化测试工具,类似于前面所说的Selenium,利用它可以驱动Android、iOS等设备完成自动化测试,比如模拟点击、滑动、输入等操作,其官方网站为:http://appium.io/。本节中,我们就来了解一下Appium的安装方式。 1. 相关链接 GitHub:http 阅读全文
posted @ 2018-09-11 15:03 Shadow_Y 阅读(202) 评论(0) 推荐(0)
摘要: mitmproxy是一个支持HTTP和HTTPS的抓包程序,类似Fiddler、Charles的功能,只不过它通过控制台的形式操作。 此外,mitmproxy还有两个关联组件,一个是mitmdump,它是mitmproxy的命令行接口,利用它可以对接Python脚本,实现监听后的处理;另一个是mit 阅读全文
posted @ 2018-09-11 15:02 Shadow_Y 阅读(638) 评论(0) 推荐(0)
摘要: Charles是一个网络抓包工具,相比Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。 1. 相关链接 官方网站:https://www.charlesproxy.com 下载链接:https://www.charlesproxy.com/downlo 阅读全文
posted @ 2018-09-11 15:01 Shadow_Y 阅读(210) 评论(0) 推荐(0)
摘要: Tornado是一个支持异步的Web框架,通过使用非阻塞I/O流,它可以支撑成千上万的开放连接,效率非常高,本节就来介绍一下它的安装方式。 1. 相关链接 GitHub:https://github.com/tornadoweb/tornado PyPI:https://pypi.python.or 阅读全文
posted @ 2018-09-11 15:00 Shadow_Y 阅读(182) 评论(0) 推荐(0)
摘要: Flask是一个轻量级的Web服务程序,它简单、易用、灵活,这里主要用来做一些API服务。 1. 相关链接 GitHub:https://github.com/pallets/flask 官方文档:http://flask.pocoo.org 中文文档:http://docs.jinkan.org/ 阅读全文
posted @ 2018-09-11 15:00 Shadow_Y 阅读(173) 评论(0) 推荐(0)
摘要: RedisDump是一个用于Redis数据导入/导出的工具,是基于Ruby实现的,所以要安装RedisDump,需要先安装Ruby。 1. 相关链接 GitHub:https://github.com/delano/redis-dump 官方文档:http://delanotes.com/redis 阅读全文
posted @ 2018-09-11 14:59 Shadow_Y 阅读(909) 评论(0) 推荐(0)
摘要: 对于Redis来说,我们要使用redis-py库来与其交互,这里就来介绍一下它的安装方法。 1. 相关链接 GitHub:https://github.com/andymccurdy/redis-py 官方文档:https://redis-py.readthedocs.io/ 2. pip安装 这里 阅读全文
posted @ 2018-09-11 14:58 Shadow_Y 阅读(177) 评论(0) 推荐(0)
摘要: 在Python中,如果想要和MongoDB进行交互,就需要借助于PyMongo库,这里就来了解一下它的安装方法。 1. 相关链接 GitHub:https://github.com/mongodb/mongo-python-driver 官方文档:https://api.mongodb.com/py 阅读全文
posted @ 2018-09-11 14:57 Shadow_Y 阅读(183) 评论(0) 推荐(0)
摘要: Redis是一个基于内存的高效的非关系型数据库,本节中我们来了解一下它在各个平台的安装过程。 1. 相关链接 官方网站:https://redis.io 官方文档:https://redis.io/documentation 中文官网:http://www.redis.cn GitHub:https 阅读全文
posted @ 2018-09-11 14:56 Shadow_Y 阅读(262) 评论(0) 推荐(0)
摘要: 在Python 3中,如果想要将数据存储到MySQL中,就需要借助PyMySQL来操作,本节中我们介绍一下它的安装方式。 1. 相关链接 GitHub:https://github.com/PyMySQL/PyMySQL 官方文档:http://pymysql.readthedocs.io/ PyP 阅读全文
posted @ 2018-09-11 14:56 Shadow_Y 阅读(287) 评论(0) 推荐(0)
摘要: MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。 MongoDB支持多种平台,包括Windows、Linux、Mac OS、Solaris等,在其官方网站(https:/ 阅读全文
posted @ 2018-09-11 14:55 Shadow_Y 阅读(310) 评论(0) 推荐(0)
摘要: 在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们可以直接用OCR来识别。 1. OCR OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规 阅读全文
posted @ 2018-09-11 14:54 Shadow_Y 阅读(1091) 评论(0) 推荐(0)
摘要: MySQL是一个轻量级的关系型数据库,本节中我们来了解下它的安装方式。 1. 相关链接 官方网站:https://www.mysql.com/cn 下载地址:https://www.mysql.com/cn/downloads 中文教程:http://www.runoob.com/mysql/mys 阅读全文
posted @ 2018-09-11 14:54 Shadow_Y 阅读(175) 评论(0) 推荐(0)
摘要: pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便。本节中,我们就来了解一下它的安装方式。 1. 相关链接 GitHub:https://github.com/gawel/pyquery PyPI:https://pypi. 阅读全文
posted @ 2018-09-11 14:53 Shadow_Y 阅读(648) 评论(0) 推荐(0)
摘要: Beautiful Soup是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据。它拥有强大的API和多样的解析方式,本节就来了解下它的安装方式。 1. 相关链接 官方文档:https://www.crummy.com/software/BeautifulSoup/bs 阅读全文
posted @ 2018-09-11 14:52 Shadow_Y 阅读(228) 评论(0) 推荐(0)
摘要: 之前介绍的Requests库是一个阻塞式HTTP请求库,当我们发出一个请求后,程序会一直等待服务器响应,直到得到响应后,程序才会进行下一步处理。其实,这个过程比较耗费资源。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等,那么爬取效率一定会大大提高。 aiohttp就是这 阅读全文
posted @ 2018-09-11 14:51 Shadow_Y 阅读(251) 评论(0) 推荐(0)
摘要: lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。本节中,我们了解一下lxml的安装方式,这主要从Windows、Linux和Mac三大平台来介绍。 1. 相关链接 官方网站:http://lxml.de GitHub:https://git 阅读全文
posted @ 2018-09-11 14:51 Shadow_Y 阅读(194) 评论(0) 推荐(0)
摘要: PhantomJS是一个无界面的、可脚本编程的WebKit浏览器引擎,它原生支持多种Web标准:DOM操作、CSS选择器、JSON、Canvas以及SVG。 Selenium支持PhantomJS,这样在运行的时候就不会再弹出一个浏览器了。而且PhantomJS的运行效率也很高,还支持各种参数配置, 阅读全文
posted @ 2018-09-11 14:50 Shadow_Y 阅读(279) 评论(0) 推荐(0)
摘要: 前面我们成功安装好了Selenium库,但是它是一个自动化测试工具,需要浏览器来配合使用,本节中我们就介绍一下Chrome浏览器及ChromeDriver驱动的配置。 首先,下载Chrome浏览器,方法有很多,在此不再赘述。 随后安装ChromeDriver。因为只有安装ChromeDriver,才 阅读全文
posted @ 2018-09-11 14:48 Shadow_Y 阅读(321) 评论(0) 推荐(0)
摘要: 上一节中,我们了解了ChromeDriver的配置方法,配置完成之后便可以用Selenium驱动Chrome浏览器来做相应网页的抓取。 那么对于Firefox来说,也可以使用同样的方式完成Selenium的对接,这时需要安装另一个驱动GeckoDriver。 本节中,我们来介绍一下GeckoDriv 阅读全文
posted @ 2018-09-11 14:48 Shadow_Y 阅读(5169) 评论(0) 推荐(0)
摘要: Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些JavaScript渲染的页面来说,这种抓取方式非常有效。下面我们来看看Selenium的安装过程。 1. 相关链接 官方网站:http://www.seleniumhq.org GitHub: 阅读全文
posted @ 2018-09-11 14:47 Shadow_Y 阅读(384) 评论(0) 推荐(0)
摘要: 由于Requests属于第三方库,也就是Python默认不会自带这个库,所以需要我们手动安装。下面我们首先看一下它的安装过程。 1. 相关链接 GitHub:https://github.com/requests/requests PyPI:https://pypi.python.org/pypi/ 阅读全文
posted @ 2018-09-11 14:46 Shadow_Y 阅读(371) 评论(0) 推荐(0)
摘要: 既然要用Python 3开发爬虫,那么第一步一定是安装Python 3。这里会介绍Windows、Linux和Mac三大平台下的安装过程。 1. 相关链接 官方网站:http://python.org 下载地址:https://www.python.org/downloads 第三方库:https: 阅读全文
posted @ 2018-09-11 14:43 Shadow_Y 阅读(596) 评论(0) 推荐(0)