鱼C论坛

 找回密码
 立即注册
查看: 1592|回复: 7

[已解决]对于动态网页,爬取超链接的有效方法

[复制链接]
发表于 2018-11-13 14:08:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学习了小甲鱼的爬虫课程,自己测试发现urlopen返回的是网页源代码,有些网页的源码和审查元素中的链接地址不一致,这类网页如何有效获取实际url呢?有没有好用的方法,求大家指教。
最佳答案
2018-11-13 18:09:11
大多数动态的网页,你需要的内容没有在源码加载的静态代码中,而是由源码中的js加载,然后才返回到源码中,和源码并在一块显示给你看。所以有些内容你看得到,爬不到。
要想爬取得话,就得F12进network分析发出的请求和得到的响应,最后确定你需要的内容是由哪条js代码或者链接加载。嗯,你问题只问道这儿。就讲到这,错误的地方望指点
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-13 15:42:11 | 显示全部楼层
举例?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-13 16:57:53 | 显示全部楼层
Selenium   模块
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-13 18:09:11 | 显示全部楼层    本楼为最佳答案   
大多数动态的网页,你需要的内容没有在源码加载的静态代码中,而是由源码中的js加载,然后才返回到源码中,和源码并在一块显示给你看。所以有些内容你看得到,爬不到。
要想爬取得话,就得F12进network分析发出的请求和得到的响应,最后确定你需要的内容是由哪条js代码或者链接加载。嗯,你问题只问道这儿。就讲到这,错误的地方望指点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-13 19:42:08 From FishC Mobile | 显示全部楼层
cupbbboom 发表于 2018-11-13 18:09
大多数动态的网页,你需要的内容没有在源码加载的静态代码中,而是由源码中的js加载,然后才返回到源码中, ...

请教一下
怎么找到哪个js加载的文件或文本?
判断之后怎么处理呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 13:08:16 | 显示全部楼层
fishclove 发表于 2018-11-13 19:42
请教一下
怎么找到哪个js加载的文件或文本?
判断之后怎么处理呢?

em...第一步要确定你需要的内容是由什么得到(可能是js文件、响应中的json数据链接、html文件等等)所以要仔细查看链接的名字(不要担心,链接名字都比较好认,而且既然是动态网页,那么只选择xhr、js、doc三种类型就可以),完成第一步就已经找到了你需要的内容出处了。第二步,这里就是重点了,一般会得到一条链接,所以你要做的就是用代码去发送这个链接的请求、得到响应、解析内容,就OK了。  但是你要仿造这个链接却又分多种情况。简单的:链接没什么成分,直接将参数带上,发送就完事了;稍难点的:链接的参数包涵了各种cookie、各种ID(像什么uuid、pid...)还有其他的,同样将这些参数带上也完事了,那为什么这种的要稍难点呢,其实难点在--------你要按照  客户端发出请求     服务端再给你响应内容   这个逻辑,去寻找之前讲的参数,这一步,刚开始慢慢来,多练习就会变快。高手级别的:就是在前面一个难度的级别上加了一些,比如,参数你只能找到出处,而这个出处来自于js(可能是一小段js代码、也可能是大段代码),然后你要把这个代码找出来,改成一个函数(可能他本来就是一个函数,那你就直接拿过来用)将返回值改为你要的形式,这样参数就得到,然后带入链接,完事。最后一个无所不能爬级别: 在前面的基础上,直接正面刚各种验证码识别,估计没什么是他爬不了的了。     所以 ,你问我判断后怎么处理    ,明白了吧,加油啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 02:16:52 From FishC Mobile | 显示全部楼层
cupbbboom 发表于 2018-11-14 13:08
em...第一步要确定你需要的内容是由什么得到(可能是js文件、响应中的json数据链接、html文件等等)所以 ...

感觉懂了 又不懂…… 不过谢谢你啦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 09:20:04 | 显示全部楼层
过来顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-27 14:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表