
《Python3网络爬虫开发实现》
文章平均质量分 83
Hi Bomb!
这个作者很懒,什么都没留下…
展开
-
python算法之lowb排序三人组(冒泡排序,插入排序,选择排序)
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。它是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。它的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。原创 2022-09-30 21:50:53 · 153 阅读 · 0 评论 -
《错误集锦》:爬虫时遇到status_code为 412,怎么办
错误是什么:HTTP 412错误,(Precondition failed),是HTTP协议状态码的一种,表示“未满足前提条件”。如果服务器没有满足请求者在请求中设置的其中一个前提条件时就会返回此错误代码。412错误一般是由于要查看的网页设置了,一般是网页中有一个或多个请求标题字段中具有先决条件,这些字段经服务器测试后被认为是”FALSE”。客户端为当前资源的,以便防止请求的方法被用于指定资源外的其他资源,因此该请求无法完成而出现的错误。转载 2022-09-17 11:28:17 · 10911 阅读 · 3 评论 -
《Python3 网络爬虫开发实战》:Ajax 分析方法
本节我们介绍了 Ajax 的基本原理和分析方法,在下一节中,我们用一个正式的实例来实现一下 Ajax 数据的爬取。原创 2022-09-16 21:04:32 · 147 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:什么是AJAX?
Ajax,全称为,,获取到数据之后,再利用 JavaScript 改变网页,这样网页内容就会更新了。向服务器发送请求如需向服务器发送请求,就会涉及到 open()和send()方法GET 还是 POST?GET 比 POST 更简单更快,可用于大多数情况下。get请求。原创 2022-09-16 19:44:59 · 480 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:便于高效检索的 Elasticsearch 存储
Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库™ 基础之上。那 Lucene 又是什么呢?Lucene可能是目前存在的(不论开源还是私有的)拥有最先进、高性能和全功能搜索引擎功能的库,但也仅仅只是一个库。要想用 Lucene,我们需要编写Java 并引用 Lucene 包才可以,而且我们需要对信息检索有一定程度的理解。为了解决这个问题,Elasticsearch 就诞生了。原创 2022-09-15 23:54:19 · 680 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:关系型数据库 MySQL 存储
关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来保存的,所以它的存储方式就是行列组成的表,每一列是一个字段,每一行是一条记录。表可以看作某个实体的集合,而实体之间存在联系,这就需要表与表之间的关联关系来体现,如主键外键的关联关系。多个表组成一个数据库,也就是关系型数据库。关系型数据库有多种,如 SQLite、MySQL、Oracle、SQL Server、DB2 等,本节我们主要来了解下 MySQL 数据库的存储操作。原创 2022-09-13 20:00:50 · 497 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:高效实用的 MongoDB 文档存储
全称,意为不仅仅是,泛指非关系型数据库。,而且不需要经过 SQL 层的解析,数据之间没有耦合性,性能非常高。对于爬虫的数据存储来说,一条数据可能存在某些字段提取失败而缺失的情况,而且数据可能随时调整。另外,数据之间还存在嵌套关系。如果使用,二是,这非常不方便。如果用了非关系型数据库,就可以避免一些麻烦,。本节中,我们主要介绍MongoDB 是由 C++ 语言编写的非关系型数据库,。在这一节中,我们就来看看 Python 3 下 MongoDB 的存储操作。原创 2022-09-13 16:23:12 · 636 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:方便灵活的 JSON 文本文件存储
本节中,我们了解了用 Python 进行 JSON 文件读写的方法,后面做数据解析时经常会用到,建议熟练掌握。原创 2022-09-13 15:42:04 · 506 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:简易的 TXT 纯文本文件存储
本节我们了解了基本 TXT 文件存储的实现方式,建议熟练掌握。原创 2022-09-13 15:14:11 · 345 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:parsel 的使用
parsel 这个库可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。功能灵活而又强大,同时它也是 Python 最流行爬虫框架 Scrapy 的底层支持。parsel 是一个融合了 XPath、CSS Selector 和正则表达式的提取库,功能强大又灵活,建议好好学习一下,同时也可以为后文学习 Scrapy 框架打下基础。原创 2022-09-13 15:04:29 · 1058 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:网页解析利器 XPath
XPath,全称是 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言。它最初是用来搜寻 XML 文档的,但是它同样适用于 HTML 文档的搜索。所以在做爬虫时,我们完全可以使用来做相应的信息抽取。本节我们就来了解下 XPath 的基本用法。原创 2022-09-13 13:35:49 · 470 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:灵巧好用的 正则表达式
到此为止,正则表达式的基本用法就介绍完了,后面会通过具体的实例来讲解正则表达式的用法。原创 2022-09-12 16:45:37 · 421 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:request(2)
在 requests 中,如果直接利用 get 或 post 等方法的确可以做到模拟网页的请求,但是这实际上是相当于不同的 Session,也就是说相当于你用了两个浏览器打开了不同的页面。设想这样一个场景,第一个请求利用 requests 的 post 方法登录了某个网站,第二次想获取成功登录后的自己的个人信息,又用了一次 requests 的 get 方法去请求个人信息页面。实际上,这相当于打开了两个浏览器,是两个完全独立的操作,对应两个完全不相关的 Session,能成功获取个人信息吗?那当然不能。原创 2022-09-11 23:35:15 · 307 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:方便好用的 requests(1)
上一节中,我们了解了 urllib 的基本用法,但是其中确实有不方便的地方,比如处理网页验证和 Cookie 时,需要写 Opener 和 Handler 来处理。另外我们要实现 POST、PUT 等请求时写法也不太方便。为了更加方便地实现这些操作,就有了更为强大的库 requests,有了它,Cookie、登录验证、代理设置等操作都不是事儿。接下来,让我们领略一下它的强大之处吧。原创 2022-09-11 23:14:54 · 347 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》urllib 初体验
首先我们介绍一个 Python 库,叫做,利用它我们可以实现 HTTP 请求的发送,而不用去关心 HTTP 协议本身甚至更低层的实现。我们只需要指定请求的 URL、请求头、请求体等信息即可实现 HTTP 请求的发送,同时 urllib 还可以把服务器返回的响应转化为 Python 对象,通过该对象我们便可以方便地获取响应的相关信息了,如响应状态码、响应头、响应体等等。首先,我们来了解一下 urllib 库的使用方法,它是 Python 内置的 HTTP 请求库,也就是说不需要额外安装即可使用。原创 2022-09-11 19:19:22 · 1052 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》Session 和 Cookie
在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且很长时间都不会失效,这种情况又是为什么?其实这里面涉及 Session 和 Cookie 的相关知识,本节就来揭开它们的神秘面纱。原创 2022-09-11 18:38:57 · 468 阅读 · 1 评论 -
《Python3 网络爬虫开发实战》:代理的基本原理
本文介绍了代理的相关知识,这对后文我们进行一些反爬绕过的实现有很大的帮助,同时也为后文的一些抓包操作打下基础,需要好好理解。本节由于涉及一些专业名词,本节的部分内容参考来源如下。原创 2022-09-11 14:34:30 · 224 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:Web 网页基础
网页可以分为三大部分 ——。如果把网页比作一个人的话**,HTML 相当于骨架**,,,三者结合起来才能形成一个完善的网页。下面我们分别来介绍一下这三部分的功能。原创 2022-09-11 14:12:32 · 159 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:HTML基本原理
我们先观察第一个网络请求,即 www.baidu.com,其中各列的含义如下。第一列 Name:请求的名称,一般会将 URL 的最后一部分内容当作名称。第二列 Status:响应的状态码,这里显示为 200,代表响应是正常的。通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。第三列 Protocol:请求的协议类型,这里 http/1.1 代表是 HTTP 1.1 版本,h2 代表 HTTP 2.0 版本。第四列 Type:请求的文档类型。原创 2022-09-11 12:08:40 · 1061 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:HTTP 响应头信息
因此,Servlet应该通过查看Accept-Encoding头(即request.getHeader(“Accept-Encoding”))检查浏览器是否支持gzip,为支持gzip的浏览器返回经gzip压缩的HTML页面,为其他浏览器返回普通页面。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态。HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。原创 2022-09-07 02:51:52 · 296 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:二、HTML消息结构
一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。POST请求可能会导致新的资源的创建和/或已有资源的修改。一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。:向特定的资源发出请求。原创 2022-09-07 02:47:02 · 128 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》: html 结构content-Type解读
Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式。Content-Type 标头告诉客户端实际返回的内容的内容类型。原创 2022-09-07 02:25:03 · 717 阅读 · 0 评论 -
《Python3 网络爬虫开发实战》:一、爬虫是什么
本节结束,我们已经对爬虫有了基本的了解,接下来让我们一起接着迈入爬虫学习的世界吧!原创 2022-09-07 01:46:06 · 229 阅读 · 0 评论