Python爬虫自学系列(四)

在这里插入图片描述

前言

上一篇讲的是爬虫中的缓存,相对来说比较难一点,而且不是直接面向网页的,所以可能会比较无聊一点吧。

这一篇我们来讲当遇到动态网页时候的另一种处理办法,即json抓包处理。

然后呢,再讲一下界面交互相关的事情。

为什么能讲这么多呢?因为之前都讲好了,现在总结一下再深化一点啦。


关于动态网页的json包

和单页面应用的简单表单事件不同,使用 JavaScript 时,不再是加载后立即下载页面全部内容。这种架构会造成许多网页在浏览器中展示的内容可能不会出现在 HTML 源代码中,我们在前面介绍的抓取技术也就无法抽取网站的重要信息了。

这篇带上了几个例子讲解了为什么要用json,以及该如何抓包的问题,喜欢的人还不少:我要偷偷的学Python,然后惊呆所有人(第九天)
讲了爬取CSDN我自己的文章的时候,网页代码倒是爬下来了,但是评论区数据却被 ‘隐藏’ 了,并没有显示出来啊!!!
后面用了json串,终于找到了那 ‘丢失的’ 数据。


除了这种源码里面不带界面信息的情况,更多的时候我是在获取cookie的时候要用到json解析技术。
为什么呢?因为json串所在的网址我并不知道啊,这就意味着我得自己去走一遍流程啊!!!!!


在这里插入图片描述


人机交互

看一下我之前关于cookie和session的介绍吧:我要偷偷的学Python,然后惊呆所有人(第十一天)

敏感数据只应使用 POST 请求进行发送,以避免将数据暴露在 URL 中。

如果你一定说要自力更生,用post方法上去,那我得说一声儿:不是在表面上看到的数据要提交,还有些输入框是被隐藏了。

你可以通过之前讲过的方法,查看界面上的 ‘input’ 元素,不过还是建议用xpath一次性抓下来,肉眼怕是要看漏一个就尴尬。

这样就完了吗?没完呢!
还是要cookie。
那这个cookie怎么给呢?

html = requests.get(LOGIN_URL)
second_response = requests.post(LOGIN_URL, data, cookies=html.cookies) 

这个样子。


这么麻烦,还不如用我的办法,先登录,登录之后再找你登录之后界面的cookie,然后把数据爬下来。

在做验证码登录的时候,还会发现这个方法的奇效


还是短,那就再加selenium吧,不然到时候单独开一篇selenium又是这个链接那个链接的,这样不好。

selenium自动化

在这里插入图片描述

关于selenium的简单介绍依旧在这篇:我要偷偷的学Python,然后惊呆所有人(第十一天)里面提及。

后面呢,我用selenium做了个小项目,以下是当时的纪录:
我要偷偷的学Python,然后惊呆所有人(第十二天)
连夜优化的一段代码,请求指教

尽管通过常见浏览器安装和使用 Selenium 相当方便、容易,但是在服务器上运行这些脚本时则会出现问题。对于服务器而言,更常使用的是无界面浏览器。它们往往也比功能完整的 Web 浏览器更快且更具可配置性。

使用类似 Selenium 这样基于浏览器的解析器的另一个原因是,它表现得更加不像爬虫。一些网站使用类似蜜罐的防爬技术,在该网站的页面上可能会包含隐藏的有毒链接,当你通过脚本点击它时,将会使你的爬虫被封禁。对于这类问题,由于 Selenium 基于浏览器的架构,因此可以成为更加强大的爬虫。此外,你的头部将包含你使用的确切浏览器,而且你还可以使用正常浏览器的功能,比如 cookie、会话以及加载图片和交互元素,这些功能有时需要加载特定的表单或页面。


这篇就到这儿啦。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43762191/article/details/112995418