鱼C论坛

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

[已解决]关于浏览器【检查】和【网页源代码】内容不一样的疑惑

[复制链接]
发表于 2017-2-15 09:38:45 | 显示全部楼层 |阅读模式

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

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

x
初学Python
一直用的是Chrome浏览器去寻找URL和标签
之前我一直发现一个问题:
使用【检查】和查看【网页源代码】显示的内容大多数不一样
页面能够显示的东西用【检查】都能查看到标签,但是【网页源代码】中却找不到相关信息
由于这个问题,我经常都找不到准确的URL

这个是【检查】,其实就是查看页面内容所在的标签


今天我查看了这2中查看网页标签的方式,发现原来【检查】看到的是经过JS加载过的代码,所以信息是比较多的
那么,我的问题是,如果我寻找URL去爬取信息,是不是我能够用【检查】看到我要的信息的那个地址就是我需要的URL?
最佳答案
2017-2-16 08:25:43
gopythoner 发表于 2017-2-15 20:57
我还是发现了这2种的不同直接影响了我爬数据
因为我将URL作为requests对象去请求之后得到的html网页里面 ...

确实会有遇到某些url是经过js处理然后再生成的情况(比如某些url的加密解密,id的运算等),这样的情况下你直接看网页源代码是找不到直接的url的,而通过检查是可以看到经过处理的url的。
一般遇到这个情况,除非你了解这些url的生成方式,自行设计算法来破解,不然直接用requests库就显得力不从心了。
当然,遇到这种情况也有一个“曲线救国”的办法,就是借助selenium或者splinter来模拟浏览器访问,既然是模拟浏览器,当然它们都是可以处理js程序的,所以你看到的也是直接可以访问的url。
至于怎么使用selenium或者splinter,网上教程很多,更推荐splinter,使用更方便,当然splinter本身就是用selenium写的,所以要用splinter的话,selenium和splinter都需要安装。
QQ截图20170215093457.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-15 15:05:25 | 显示全部楼层
对头,用检查的话都是处理过的数据,也是能够直接访问的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 20:57:56 | 显示全部楼层
jackche0214 发表于 2017-2-15 15:05
对头,用检查的话都是处理过的数据,也是能够直接访问的。

我还是发现了这2种的不同直接影响了我爬数据
因为我将URL作为requests对象去请求之后得到的html网页里面跟源代码一样,也是不包含【检查】里面的信息的,也就是说这些JS或者其他地方加载出来的信息并不能用这个URL去获取
这个问题非常困扰我,因为这个样子我根本没办法找到那个包含了我需要的信息的URL
我试过拿着我要的信息去在JS里面查找,根本没有找到
请问这种情况到底怎么去确认URL
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-16 08:25:43 | 显示全部楼层    本楼为最佳答案   
gopythoner 发表于 2017-2-15 20:57
我还是发现了这2种的不同直接影响了我爬数据
因为我将URL作为requests对象去请求之后得到的html网页里面 ...

确实会有遇到某些url是经过js处理然后再生成的情况(比如某些url的加密解密,id的运算等),这样的情况下你直接看网页源代码是找不到直接的url的,而通过检查是可以看到经过处理的url的。
一般遇到这个情况,除非你了解这些url的生成方式,自行设计算法来破解,不然直接用requests库就显得力不从心了。
当然,遇到这种情况也有一个“曲线救国”的办法,就是借助selenium或者splinter来模拟浏览器访问,既然是模拟浏览器,当然它们都是可以处理js程序的,所以你看到的也是直接可以访问的url。
至于怎么使用selenium或者splinter,网上教程很多,更推荐splinter,使用更方便,当然splinter本身就是用selenium写的,所以要用splinter的话,selenium和splinter都需要安装。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-16 10:38:44 | 显示全部楼层
jerryxjr1220 发表于 2017-2-16 08:25
确实会有遇到某些url是经过js处理然后再生成的情况(比如某些url的加密解密,id的运算等),这样的情况下 ...

感谢提醒,我昨天已经查看了这种动态网页爬取的确是需要截取模拟浏览器行为去爬数据的,所以已经开始准备好好学学selenium了
爬虫是个大坑啊,跳进去烧脑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-16 10:57:31 | 显示全部楼层
gopythoner 发表于 2017-2-16 10:38
感谢提醒,我昨天已经查看了这种动态网页爬取的确是需要截取模拟浏览器行为去爬数据的,所以已经开始准备 ...

新手的话,推荐学splinter+phantomjs,更容易学,功能和selenium+chrome是一样的。
如果需要深度学习当然selenium是必须的,不过一般爬取和使用的话,splinter足够了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-17 19:55:08 | 显示全部楼层
我也遇到这个问题了,阿里联盟的。按你说的试验一下。遇到楼主很多次了。楼主多大了,学了多久。感觉比我学的快很多啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-17 20:44:58 | 显示全部楼层
jia3168 发表于 2017-4-17 19:55
我也遇到这个问题了,阿里联盟的。按你说的试验一下。遇到楼主很多次了。楼主多大了,学了多久。感觉比我学 ...

淘宝的爬虫我早已经搞定了,需要分析cookie,然后自行构造
加载的信息使用selenium可以爬到,selenium是爬虫神器,但是速度太慢了,一般我只在需要账号密码登陆的爬虫中用,比如登陆QQ和微博这种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 17:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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