
Python3网络爬虫开发实战笔记
文章平均质量分 95
买了一本《Python3网络爬虫开发实战第2版》,想系统的掌握爬虫相关技术,会把一些读书笔记进行整理,方便进一步理解以及后续参考。
SunnyRivers
在通信、游戏、互联网、新能源等不同行业从事过多年大数据开发相关工作,想通过博客和大家一起分享大数据技术带来的经验和乐趣。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JavaScript动态渲染页面爬取之Splash
异步处理多个网页的渲染过程:获取渲染后页面的源代码或截图;通过关闭图片渲染或者使用 Adblock规则的方式加快页面渲染的速度;执行特定的 JavaScript 脚本;通过 Lua 脚本控制页面的渲染过程;获取页面渲染的详细过程并以HAR(HTTPArchive)的格式呈现出来。接下来,我们一起了解 Splash 的具体用法。本篇博客中,我们全面地了解了 Splash 的基本用法。原创 2025-01-12 00:01:04 · 1352 阅读 · 0 评论 -
JavaScript动态渲染页面爬取之Selenium
讲解了 Ajax 的分析方法,利用 Ajax接口可以非常方便地爬取数据。只要能找到 Ajax接口的规律,就可以通过某些参数构造出对应的请求,自然就能轻松爬取数据啦。但是在很多情况下,Ajax请求的接口含有加密参数,例如token、sign等,示例网址https://spa2.scrape.center/的Ajax接口就包含一个 token 参数,如下图所示。由于请求 Ajax接口时必须加上 token参数,因此如果不深人分析并找到token参数的构造逻辑,是难以直接模拟 Ajax 请求的。原创 2025-01-08 20:52:17 · 1140 阅读 · 0 评论 -
异步爬虫之aiohttp的使用
前面介绍的 asyncio模块,其内部实现了对 TCP、UDP、SSL协议的异步操作,但是对于 HTTP 请求来说,就需要用 aiohttp 实现了。aiohttp 是一个基于 asyncio 的异步 HTTP 网络模块,它既提供了服务端,又提供了客户端。其中我们用服务端可以搭建一个支持异步处理的服务器,这个服务器就是用来处理请求并返回响应的,类似于 Django、Flask、Tormado 等一些 Web服务器。原创 2024-12-30 12:56:28 · 2244 阅读 · 0 评论 -
异步爬虫之协程的基本原理
Number: 1首先,我们引人了 asyncio 包,这样才可以使用 async 和 await 关键字。然后使用 async 定义了一个 execute 方法,该方法接收一个数字参数x,执行之后会打印这个数字。随后我们直接调用了 execute 方法,然而这个方法并没有执行,而是返回了一个 coroutine 协程对象。原创 2024-12-29 23:50:36 · 1664 阅读 · 0 评论 -
Ajax数据爬取
Ajax,全称为 Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML。它不是一门编程语言,而是利用 JavaScript 在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页内容的技术。对于传统的网页,如果想更新其内容,就必须刷新整个页面,但有了Aiax,可以在页面不被全部刷新的情况下更新。这个过程实际上是页面在后台与服务器进行了数据交互,获取数据之后,再利用JavaScript 改变网页,这样网页内容就会更新了。原创 2024-12-29 00:40:06 · 1571 阅读 · 0 评论 -
网页数据的解析提取之Beautiful Soup
简单来说,Beautiful Soup是 Python 的一个 HTML或 XML的解析库,我们用它可以方便地从网页中提取数据,其官方解释如下:Beautiful Soup 提供一些简单的、Python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以无须很多代码就可以写出一个完整的应用程序。Beautiful Soup 自动将输人文档转换为 Unicode 编码,将输出文档转换为 utf-8 编码。原创 2024-12-28 22:29:42 · 1121 阅读 · 0 评论 -
网页数据的解析提取之xpath
XPath 的全称是 XML Path Language,即 XML路径语言,用来在 XML 文档中查找信息。它虽然最初是用来搜寻 XML 文档的,但同样适用于 HTML 文档的搜索。XPath的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。另外,它还提供了 100多个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等。几乎所有我们想要定位的节点,都可以用 XPath 选择。原创 2024-12-26 23:13:24 · 1239 阅读 · 0 评论 -
基础爬虫案例实战
本篇博客用到的库有 requests、multiprocessing、re、logging等,通过这个案例实战,我们把前面学习到的知识都串联了起来,对于其中的一些实现方法,可以好好思考和体会,也希望这个案例能够让你对爬虫的实现有更实际的了解。原创 2024-12-22 23:07:11 · 1884 阅读 · 1 评论 -
基础库httpx的使用
本篇博客介绍了 httpx的基本用法,该库的 API与requests的非常相似,简单易用,同时支持 HTTP/2.0.推荐大家使用。原创 2024-12-19 22:50:25 · 1217 阅读 · 0 评论 -
基础库正则表达式
到此为止,正则表达式的基本用法就介绍完了,后面会通过具体的实例来巩固这些方法。原创 2024-12-17 23:58:41 · 733 阅读 · 0 评论 -
基础库requests的使用
本篇博客的requests 库的基本用法就介绍到这里了,怎么样?有没有感觉它比 urllib 库使用起来更为方便。本篇博客内容需要好好掌握,后文我们会在实战中使用 requests 库完成一个网站的爬取,顺便巩固requests 库的相关知识。原创 2024-12-16 23:04:44 · 1002 阅读 · 0 评论 -
基础库urllib的使用
首先介绍一个 Python 库,叫作 urllib,利用它就可以实现 HTTP 请求的发送,而且不需要关心 HTTP协议本身甚至更底层的实现,我们要做的是指定请求的 URL、请求头、请求体等信息。此外 urllib 还可以把服务器返回的响应转化为Python对象,我们通过该对象便可以方便地获取响应的相关信息,如响应状态码、响应头、响应体等。在Python2中,有urllib 和urllib2 两个库来实现HTTP请求的发送。而在Python3中,urllib2库已经不存在了,统一为了 urllib。原创 2024-12-15 10:02:23 · 1333 阅读 · 0 评论 -
爬虫基础之多线程和多进程的基本原理
本节介绍了多线程、多进程的基本知识,如果我们可以把多线程、多进程运用到爬虫中的话,爬虫的爬取效率将会大幅提升。原创 2024-12-11 22:26:33 · 1601 阅读 · 0 评论 -
爬虫基础之代理的基本原理
本文介绍了代理的相关知识,这对后文我们进行一些反爬绕过的实现有很大的帮助,同时也为后文的一些抓包操作打下了基础,需要好好理解。原创 2024-12-11 22:09:49 · 2358 阅读 · 0 评论 -
爬虫基础之Session和Cookie
本节介绍了 Session 和 Cookie 的基本概念,这对后文进行网络爬虫的开发有很大的帮助,需要好好掌握。原创 2024-12-10 23:32:16 · 1835 阅读 · 0 评论 -
爬虫基础之爬虫的基本原理
简单点讲,爬虫就是获取网页并提取和保存信息的自动化程序,下面概要介绍一下。获取网页爬虫的工作首先是获取网页,这里就是获取网页的源代码。源代码里包含网页的部分有用信息所以只要获取源代码,就可以从中提取想要的信息了。这篇博客讲了请求和响应的概念,向网站的服务器发送一个请求,服务器返回的响应体便是网页源代码。所以最关键的部分是构造一个请求并发送给服务器,然后接收到响应并对其进行解析,这个流程如何实现呢?总不能手动截取网页源码吧?原创 2024-12-10 22:33:08 · 1931 阅读 · 0 评论 -
爬虫基础之Web网页基础
本节介绍了网页的结构和节点间的关系,了解了这些内容,我们才能有更加清晰的思路去解析和提取网页内容。原创 2024-12-10 21:50:46 · 1470 阅读 · 0 评论 -
爬虫基础之HTTP基本原理
Cookie 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上Cookie 并将其发送给服务器,服务器通过Cookie识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。可以理解为,接收方太繁忙了,来不及处理收到的消息了,但是发送方还在一直大量发送消息,这样就会出现一些问题。请求头中包含许多请求信息,如浏览器标识、Cookie、Host等信息,这些是请求的一部分,服务器会根据请求头里的信息判断请求是否合法,进而做出对应的响应。原创 2024-12-09 22:22:48 · 1193 阅读 · 0 评论