随笔分类 -  Python3网络爬虫

摘要:6.10 阅读全文
posted @ 2024-06-08 21:50 JJJhr 阅读(15) 评论(0) 推荐(0)
摘要:Selenium 的使用 Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些 JavaScript 动态渲染的页面来说,此种抓取方式非常有效。 准备工作 Chrome 为例来讲解 Sel 阅读全文
posted @ 2024-06-02 01:27 JJJhr 阅读(119) 评论(0) 推荐(0)
摘要:在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,而使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档,而浏览器中的页面则是经过 JavaScript 处理数据后生成的结果,这些数 阅读全文
posted @ 2024-05-30 01:54 JJJhr 阅读(34) 评论(0) 推荐(0)
摘要:用解析器解析出数据之后,接下来就是存储数据了。保存的形式可以多种多样,最简单的形式是直接保存为文本文件,如 TXT、JSON、CSV 等。另外,还可以保存到数据库中,如关系型数据库 MySQL,非关系型数据库 MongoDB、Redis 等。除了这两种也可以吧数据存储到搜索引擎(如Elasticse 阅读全文
posted @ 2024-05-29 01:58 JJJhr 阅读(186) 评论(0) 推荐(0)
摘要:案例介绍 爬取一个数据量较大的软件,链接为https://spa5.scrape.center,页面如下图所示: 这是一个图书网站,整个网站包含数千本图书信息,网站数据是 JavaScript 渲染而得的,数据可以通过 Ajax 接口获取,并且接口没有设置反爬措施和加密参数。且网站数据量多,更适合异 阅读全文
posted @ 2024-05-29 01:57 JJJhr 阅读(116) 评论(0) 推荐(0)
摘要:爬虫是 IO 密集型任务,例如使用 requests 库来爬取某个站点,发出一个请求之后,程序必须要等待网站返回响应之后才能接着运行,而在等待响应的过程中,整个爬虫程序是一直在等待的,实际上没有做任何的事情。对于这种情况我们有没有优化方案呢? 协程的基本原理 要实现异步机制的爬虫,自然和协程脱不了关 阅读全文
posted @ 2024-05-29 01:56 JJJhr 阅读(73) 评论(0) 推荐(0)
摘要:在上一节中介绍了异步爬虫的基本原理和 asyncio 的基本用法,并且在最后简单提及了使用 aiohttp 来实现网页爬取的过程。本节介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio 模块内部实现了对 TCP、UDP、SSL 协议的异步操作,但是对于 HTTP 请求来说, 阅读全文
posted @ 2024-05-29 01:56 JJJhr 阅读(283) 评论(0) 推荐(0)
摘要:Ajax 分析与爬取实战 准备工作 安装好 Python3 了解 Python HTTP 请求库 requests 的基本用法 了解 Ajax 基础知识和分析 Ajax 的基本方法 爬取目标 以一个示例网站来实验一下 Ajax 的爬取,链接为:https://spa1.scrape.center/, 阅读全文
posted @ 2024-05-29 01:55 JJJhr 阅读(108) 评论(0) 推荐(0)
摘要:Ajax 分析方法 以前面的微博为例,拖动刷新的内容由 Ajax 加载,而且页面的 URL 没有变化,那么应该到哪里去查看这些 Ajax 请求呢? 查看请求 需要借助浏览器的开发者工具,下面以 Chrome 浏览器为例。 用 Chrome 浏览器打开微博的链接 https://m.weibo.cn/ 阅读全文
posted @ 2024-05-29 01:54 JJJhr 阅读(62) 评论(0) 推荐(0)
摘要:介绍 parsel这个库可以解析HTML和XML,并支持使用XPath和CSS选择器对内容进行提取和修改,同时还融合了正则表达式的提取功能。parsel灵活强大,同时也是Python最流行的爬虫框架的底层支持。 parsel的API和Scrapy选择器的API极其相似,因为Scrapy的选择器就是基 阅读全文
posted @ 2024-05-24 16:07 JJJhr 阅读(279) 评论(0) 推荐(0)
摘要:学习了正则表达式的相关用法,一旦正则表达式写的有问题,得到的可能就不是想要的结果了。对于一个网页来说,都有一定的特殊结构和层级关系,很多节点都有 id 或 class 来作区分,所以借助它们的结构和属性来提取也可以。 Beautiful Soup是一个强大的解析工具 ,它借助网页的结构和属性等特性来 阅读全文
posted @ 2024-05-24 16:06 JJJhr 阅读(30) 评论(0) 推荐(0)
摘要:使用 pyquery 若对 Web 有所涉及,比较喜欢用 CSS 选择器,对 jQuery 有所了解,可以使用解析库 ——pyquery。 准备工作 安装 pyquery库 pip3 install pyquery 初始化 像 Beautiful Soup 一样,初始化 pyquery 的时候,也需 阅读全文
posted @ 2024-05-24 16:06 JJJhr 阅读(87) 评论(0) 推荐(0)
摘要:正则表达式比较烦琐,万一有地方写错了,可能导致匹配失败,所以使用正则表达式提取页面信息多多少少还是有些不方便。 对于网页的节点来说,它可以定义 id、class 或其他属性。而且节点之间还有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。那么,在页面解析时,利用 XP 阅读全文
posted @ 2024-05-24 16:05 JJJhr 阅读(77) 评论(0) 推荐(0)
摘要:准备工作 Python3,3.6以上的版本 了解Python多进程的基本原理 了解PythonHTTp请求库requests的基本用法 了解正则表达式的用法和正则表达式re的基本用法 爬取目标 静态网站案例,包含一些电影信息。 电影详情页 需完成的目标: requests爬取站点的每一页电影列表,顺 阅读全文
posted @ 2024-05-24 02:11 JJJhr 阅读(88) 评论(0) 推荐(0)
摘要:urllib和requests库已经可以爬取大多数网站的数据,但对于一些强制使用HTTP/2.0协议访问,这时urllib和requests是无法爬取数据的,因为只支持HTTP/1.1,不支持HTTP/2.0。可以使用一些支持HTTP/2.0的请求库,比较有代表性的是hyper和httpx,后者用起 阅读全文
posted @ 2024-05-24 01:47 JJJhr 阅读(1335) 评论(0) 推荐(0)
摘要:准备工作 安装request库 pip install request 实例引入 get方法实现GET请求,返回一个Response对象,存放在变量r中,分别输出响应的类型、状态码、响应体的类型、内容以及cookie import requests r = requests.get('http:// 阅读全文
posted @ 2024-05-24 01:42 JJJhr 阅读(50) 评论(0) 推荐(0)
摘要:urllib的使用 urllib是Python内置的用于处理URL操作的模块。它提供了很多功能,包括访问和处理URL内容、解析URL等。 1. 安装 urllib urllib是Python标准库的一部分,因此无需单独安装。Python2分为urllib和urllib2,Python3合并为urll 阅读全文
posted @ 2024-05-23 00:37 JJJhr 阅读(478) 评论(0) 推荐(0)
摘要:server.py import flaskapp = flask.Flask(__name__)@app.route('/upload', methods=['POST'])def uploadFile(): msg = "" try: if "fileName" in flask.request 阅读全文
posted @ 2024-05-21 23:26 JJJhr 阅读(18) 评论(0) 推荐(0)
摘要:web服务器向客户端发送文件 Web服务器读取一个文件的二进制数据,把这组二进制数据发送个客户端,服务器发送给客户端的HTML文档的本质也是二进制。客户端使用以下代码读文件 response = urllib.request.urlopen(url + "?" + urllib.parse.quot 阅读全文
posted @ 2024-05-19 00:58 JJJhr 阅读(30) 评论(0) 推荐(0)