- 之前介绍的 Requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服务器响应,直到得到响应后,程序才会进行下一步处理。其实,这个过程比较耗费资源。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等,那么爬取效率一定会大大提高。 aiohttp 就是这样一个提供异步 Web 服务的库,从 Python 3.5 版本开... 之前介绍的 Requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服务器响应,直到得到响应后,程序才会进行下一步处理。其实,这个过程比较耗费资源。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等,那么爬取效率一定会大大提高。 aiohttp 就是这样一个提供异步 Web 服务的库,从 Python 3.5 版本开...
- 如果想要大规模抓取数据,那么一定会用到分布式爬虫。对于分布式爬虫来说,我们需要多台主机,每台主机多个爬虫任务,但是源代码其实只有一份。此时我们需要做的就是将一份代码同时部署到多台主机上来协同运行,那么怎么去部署就是另一个值得思考的问题。 对于 Scrapy 来说,它有一个扩展组件,叫作 Scrapyd,我们只需要安装该扩展组件,即可远程管理 Scrapy 任务,包括部署源码... 如果想要大规模抓取数据,那么一定会用到分布式爬虫。对于分布式爬虫来说,我们需要多台主机,每台主机多个爬虫任务,但是源代码其实只有一份。此时我们需要做的就是将一份代码同时部署到多台主机上来协同运行,那么怎么去部署就是另一个值得思考的问题。 对于 Scrapy 来说,它有一个扩展组件,叫作 Scrapyd,我们只需要安装该扩展组件,即可远程管理 Scrapy 任务,包括部署源码...
- Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些 JavaScript 渲染的页面来说,这种抓取方式非常有效。下面我们来看看 Selenium 的安装过程。 1. 相关链接 官方网站:http://www.seleniumhq.org GitHub:https://github.com/SeleniumHQ/se... Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些 JavaScript 渲染的页面来说,这种抓取方式非常有效。下面我们来看看 Selenium 的安装过程。 1. 相关链接 官方网站:http://www.seleniumhq.org GitHub:https://github.com/SeleniumHQ/se...
- 在 Python 2 中,有 urllib 和 urllib2 两个库来实现请求的发送。而在 Python 3 中,已经不存在 urllib2 这个库了,统一为 urllib,其官方文档链接为:https://docs.python.org/3/library/urllib.html。 首先,了解一下 urllib 库,它是 Python 内置的 HTTP 请求库,也就是说... 在 Python 2 中,有 urllib 和 urllib2 两个库来实现请求的发送。而在 Python 3 中,已经不存在 urllib2 这个库了,统一为 urllib,其官方文档链接为:https://docs.python.org/3/library/urllib.html。 首先,了解一下 urllib 库,它是 Python 内置的 HTTP 请求库,也就是说...
- 了解了正则表达式,想必一般情况下的匹配都不会出现什么问题,但是如果一些特殊情况,可能需要用到一些更高级的正则表达式匹配操作,本节我们来说明一下正则表达式的一个较常用又比较重要的知识点 —— 零宽断言。 实例引入 首先我们来看一个例子,这里有一段问答对话: 问:我用的是 Windows XP+Service Pack 2,为什么无法安装输入卡号和密码的控件? 答:在 Win... 了解了正则表达式,想必一般情况下的匹配都不会出现什么问题,但是如果一些特殊情况,可能需要用到一些更高级的正则表达式匹配操作,本节我们来说明一下正则表达式的一个较常用又比较重要的知识点 —— 零宽断言。 实例引入 首先我们来看一个例子,这里有一段问答对话: 问:我用的是 Windows XP+Service Pack 2,为什么无法安装输入卡号和密码的控件? 答:在 Win...
- 我们直接用 Requests、Selenium 等库写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的。但是写多了会发现其内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,久而久之,爬虫框架就诞生了。 利用框架,我们可以不用再去关心某些功能的具体实现,只需要关心爬取逻辑即可。有了它们,可以大大简化代码量,而且... 我们直接用 Requests、Selenium 等库写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的。但是写多了会发现其内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,久而久之,爬虫框架就诞生了。 利用框架,我们可以不用再去关心某些功能的具体实现,只需要关心爬取逻辑即可。有了它们,可以大大简化代码量,而且...
- 在 SAE 上搭建自己的 WordPress 博客之后,接下来的工作会轻松比较多。还有一些细节上的处理问题在此做一下记录 1. 绑定域名 首先,你必须有一个自己的域名,建议在国外网站注册域名,首先国外的域名不需要备案的,其实按常理来说是国外域名不需要备案,但是国内的一些机构规定了是国外主机才不需要备案。建议的网站有 Godaddy、name、enom、Ipower、doma... 在 SAE 上搭建自己的 WordPress 博客之后,接下来的工作会轻松比较多。还有一些细节上的处理问题在此做一下记录 1. 绑定域名 首先,你必须有一个自己的域名,建议在国外网站注册域名,首先国外的域名不需要备案的,其实按常理来说是国外域名不需要备案,但是国内的一些机构规定了是国外主机才不需要备案。建议的网站有 Godaddy、name、enom、Ipower、doma...
- 有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档,而浏览器中的页面则是经过 JavaScript 处理数据后生成的结果,这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HT... 有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档,而浏览器中的页面则是经过 JavaScript 处理数据后生成的结果,这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HT...
- Tornado 是一个支持异步的 Web 框架,通过使用非阻塞 I/O 流,它可以支撑成千上万的开放连接,效率非常高,本节就来介绍一下它的安装方式。 1. 相关链接 GitHub:https://github.com/tornadoweb/tornado PyPI:https://pypi.python.org/pypi/tornado 官方文档:http://www.... Tornado 是一个支持异步的 Web 框架,通过使用非阻塞 I/O 流,它可以支撑成千上万的开放连接,效率非常高,本节就来介绍一下它的安装方式。 1. 相关链接 GitHub:https://github.com/tornadoweb/tornado PyPI:https://pypi.python.org/pypi/tornado 官方文档:http://www....
- 前面我们成功安装好了 Selenium 库,但是它是一个自动化测试工具,需要浏览器来配合使用,本节中我们就介绍一下 Chrome 浏览器及 ChromeDriver 驱动的配置。 首先,下载 Chrome 浏览器,方法有很多,在此不再赘述。 随后安装 ChromeDriver。因为只有安装 ChromeDriver,才能驱动 Chrome 浏览器完成相应的操作。下面我们来介... 前面我们成功安装好了 Selenium 库,但是它是一个自动化测试工具,需要浏览器来配合使用,本节中我们就介绍一下 Chrome 浏览器及 ChromeDriver 驱动的配置。 首先,下载 Chrome 浏览器,方法有很多,在此不再赘述。 随后安装 ChromeDriver。因为只有安装 ChromeDriver,才能驱动 Chrome 浏览器完成相应的操作。下面我们来介...
- RedisDump 是一个用于 Redis 数据导入 / 导出的工具,是基于 Ruby 实现的,所以要安装 RedisDump,需要先安装 Ruby。 1. 相关链接 GitHub:https://github.com/delano/redis-dump 官方文档:http://delanotes.com/redis-dump 2. 安装 Ruby 有关 Ruby 的... RedisDump 是一个用于 Redis 数据导入 / 导出的工具,是基于 Ruby 实现的,所以要安装 RedisDump,需要先安装 Ruby。 1. 相关链接 GitHub:https://github.com/delano/redis-dump 官方文档:http://delanotes.com/redis-dump 2. 安装 Ruby 有关 Ruby 的...
- 我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了。 1. 爬虫概述... 我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了。 1. 爬虫概述...
- 本书此部分内容属进阶内容,暂不开放。 如需查看更多可以购买书籍查看。 购买地址: https://item.jd.com/26114674847.html https://item.jd.com/26124473455.html 本书由图灵教育 - 人民邮电出版社出版发行。 作者:崔庆才 视频学习资源: 自己动手,丰衣足食!Python3 网络爬虫实战案例 Python3... 本书此部分内容属进阶内容,暂不开放。 如需查看更多可以购买书籍查看。 购买地址: https://item.jd.com/26114674847.html https://item.jd.com/26124473455.html 本书由图灵教育 - 人民邮电出版社出版发行。 作者:崔庆才 视频学习资源: 自己动手,丰衣足食!Python3 网络爬虫实战案例 Python3...
- 对于 Web,我们应该都不陌生,现在日常访问的网站都是 Web 服务程序搭建而成的。Python 同样不例外,也有一些这样的 Web 服务程序,比如 Flask、Django 等,我们可以拿它来开发网站和接口等。 在本书中,我们主要使用这些 Web 服务程序来搭建一些 API 接口,供我们的爬虫使用。例如,维护一个代理池,代理保存在 Redis 数据库中,我们要将代理池作为... 对于 Web,我们应该都不陌生,现在日常访问的网站都是 Web 服务程序搭建而成的。Python 同样不例外,也有一些这样的 Web 服务程序,比如 Flask、Django 等,我们可以拿它来开发网站和接口等。 在本书中,我们主要使用这些 Web 服务程序来搭建一些 API 接口,供我们的爬虫使用。例如,维护一个代理池,代理保存在 Redis 数据库中,我们要将代理池作为...
- lxml 是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。本节中,我们了解一下 lxml 的安装方式,这主要从 Windows、Linux 和 Mac 三大平台来介绍。 1. 相关链接 官方网站:http://lxml.de GitHub:https://github.com/lxml/lxml PyPI... lxml 是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。本节中,我们了解一下 lxml 的安装方式,这主要从 Windows、Linux 和 Mac 三大平台来介绍。 1. 相关链接 官方网站:http://lxml.de GitHub:https://github.com/lxml/lxml PyPI...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
即将直播
热门标签