- 博客(26)
- 收藏
- 关注
原创 【爬虫】7.1. JavaScript动态渲染界面爬取-Selenium
在学习这一章之前,若之前对于Ajax数据的分析和爬取有过了解的会知道,Ajax是JavaScript动态渲染界面的一种情形,通过直接分析Ajax,使我们仍然可以借助requests或urllib实现数据爬取。不过JavaScript动态渲染的界面不止Ajax一种,而且在实际中Ajax接口中会含有很多加密参数,比如说xhr中request url的链接中含有token参数使我们难以找到规律,所以很难直接通过分析Ajax爬取数据。
2023-08-28 16:25:46
2288
原创 【爬虫】6. 异步爬虫
想象一下你正在一家餐厅吃饭,你想要点几道菜,但是你不想等一道菜吃完后才能点下一道菜。你希望在等待第一道菜的时候,可以继续点下一道菜,饭菜会按照你点的顺序陆续上来,不会因为你等待而被耽误。异步爬虫的概念有点像这种情况。在普通的爬虫中,当我们发送请求获取网页内容时,程序会等待直到获取到内容后才继续执行下一步。但在异步爬虫中,我们可以同时发送多个请求,然后不需要等待所有的请求都完成,就可以开始处理那些已经收到的响应。这就好像在餐厅里,你点了几道菜后,不需要等待一道菜吃完才能点下一道,而是可以随时点其他的菜。
2023-08-25 20:36:12
1086
原创 【爬虫】5. Ajax数据爬取
Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML。它不是一门编程语言,而是利用JavaScript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页内容的技术。想象一下你正在一个在线购物网站上浏览商品列表,突然你想要查看某个商品的详细信息。如果没有Ajax,你点击该商品,整个页面都会重新加载,你需要重新浏览商品列表,然后再找到你之前看到的位置。
2023-08-25 20:34:52
1497
原创 【爬虫】4.3. CSV文件存储
CSV,全称为Comma-Separated Values,中文叫做逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。他比Excel文件更加简洁,CSV没有Excel的数值公式等内容,就是单纯以特定字符作为分隔符的纯文本,结构简单清晰。
2023-08-25 20:31:42
799
原创 【爬虫】4.2. JSON文本存储
JSON,全称为JavaScript Object Notation,也就是JavaScript对象标记,通过对象和数组的组合来表示数据,虽构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。
2023-08-25 20:30:51
864
原创 【爬虫】4.1. TXT文本文件存储
的方式打开一个文件,获取一个文件操作对象,这里赋值为file,每提取一部分信息就用file对象的write方法将这部分信息写入文件。这里演示了TXT文件的存储方式,以。好的,下面是Python中使用。
2023-08-25 20:28:33
724
原创 【爬虫】3.4. Parsel的使用
parsel库是一个融合了XPath,CSS选择器和正则表达式的提取库,功能强大且灵活,有关parsel的更多用法可以参考官方文档https://parsel.readthedocs.io/
2023-08-25 20:27:35
441
原创 【爬虫】3.2. Beautiful Soup的使用
在打开一个网页查看源代码的时候,会发现里面的标志都有一定的特殊结构和层次关系,很多节点都用id或class区分,所以本章节会借助这些结构和属性进行提取。Beautiful Soup是 Python 的一个HTML或XML的解析库,其借助网页的结构和属性等特性来解析网页。Beautiful Soup 提供一些简单的、Python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以无须很多代码就可以写出一个完整的应用程序。
2023-08-25 20:25:42
142
原创 【爬虫】3.1. XPath的使用
XPath 的全称是XMLPath Language,即XML路径语言,用来在XML文档中查找信息。它虽然最初是用来搜寻XML文档的,但同样适用于 HTML 文档的搜索。所以在做爬虫时,我们完全可以使用 XPath 实现相应的信息抽取。XPath 的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。另外,它还提供了 100多个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等。几乎所有我们想要定位的节点,都可以用XPath 选择。本节我们就介绍一下XPath 的基本用法。
2023-08-25 20:24:32
977
原创 【爬虫】2.4. httpx的使用
在请求网页的时候,我们可以使用requests和urllib库,这已经可以爬取绝大多数网页的数据,但对于某些网站却不可以,因为这些网站强制使用HTTP/2.0协议访问,这时urlllib和requests是无法爬取是数据的,因为他们只支持HTTP/1.1,不支持HTTP/2.0。我们只需要使用一些支持HTTP/2.0的库就行了,比如,hyper和httpx。
2023-08-25 20:23:50
827
原创 【爬虫】2.3. 正则表达式
正则表达式是用于匹配字符串中字符组合的模式。就是用来匹配字符串的规则。例如判断一个字符串中是否包含某个字符串,判断输入的手机号是否合法,在一大段字符串中找出需要的URL等。
2023-08-25 20:22:44
823
原创 【爬虫】2.2. python-requests库
在python中进行请求的常见库有urllib库和requests库等,前面我们讲述了urllib库的使用,其中缺失有不方便的地方,例如处理网页验证和Cookie时,需要写opener类和handler类来处理,另外POST、PUT等请求的时候也不太方便
2023-08-25 20:21:50
111
原创 【爬虫】2.1. python-urllib库
在Python中,urllib是一个标准库,用于处理URL(Uniform Resource Locator)相关的操作,包括发送HTTP请求、解析URL、处理文件下载等功能。
2023-08-25 20:20:26
149
原创 【爬虫】1.6. 多线程和多进程&并发和并行
在一台计算机中,我们可以同时打开多个软件,例如同时浏览网页、听音乐、打字等,这是再正常不过的事情。但仔细想想,为什么计算机可以同时运行这么多软件呢?这就涉及计算机中的两个名词:多进程和多线程。同样,在编写爬虫程序的时候,为了提高爬取效率,我们可能会同时运行多个爬虫任务,其中同样涉及多进程和多线程。
2023-08-25 20:19:22
722
原创 【爬虫】1.5. 代理的基本原理
在做爬虫的过程中经常会遇到一种情况,就是爬虫最初是正常运行、正常抓取数据的,然而过会出现了错误,例如403 Forbidden,这时打开网页一看,可能会看到“您的IP 访问频率太高”这样的提示。出现这种现象是因为网站采取了一些反爬虫措施。例如服务器会检测某个 IP 在单位时间内的请求次数,如果请求次数超过设定的值,就直接拒绝提供服务并返回一些错误信息,可以称这种情况为封IP。既然服务器把我们的IP给封了,那我伪装一下我的IP就行了。最简单的就是使用代理。
2023-08-25 20:15:47
191
原创 【爬虫】1.4. Session和Cookie
在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问。在登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且在很长时间内都不会失效,这又是什么情况?其实这里面涉及 Session和Cookie 的相关知识,本节就来讲讲他们的相关内容。
2023-08-25 20:14:19
779
原创 【爬虫】1.3. 爬虫的基本原理
若是把互联网比作一张大网,爬虫便是在网上爬行的蜘蛛。把网中的节点比作个个网页,那么蜘蛛爬到一个节点处就相当于爬虫访问了一个页面,获取了其信息。可以把网页与网页之间的链接关系比作节点间的连线,蜘蛛通过一个节点后,顺着节点连线继续爬行,到达下一个节点,意味着爬虫可以通过网页之间的链接关系继续获取后续的网页,当整个网站涉及的页面全部被爬虫访问到后,网站的数据就被抓取下来了。
2023-08-25 20:12:07
1479
mimikatz.zip附简单使用方法
2023-08-01
kali机msfconsole进行永恒之蓝漏洞复现中auxiliary模块出现的错误
2023-12-08
交换机中pc机同一网段问题与vlan
2023-09-28
SQL注入中联合注入的select和回显位
2023-10-09
用fgets()函数有缓冲区?
2022-09-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅