鱼C论坛

 找回密码
 立即注册
查看: 6246|回复: 17

[已解决]爬虫:网页嵌套在另外一个网页内

[复制链接]
发表于 2016-8-21 22:39:16 | 显示全部楼层 |阅读模式

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

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

x
如图所示,我想要获取的网页嵌套在另外一个网页内,通过requests.get方法得到的网页源代码却不包括这一部分,大家给支个招吧
最佳答案
2016-8-22 08:48:51
jfjjx 发表于 2016-8-22 08:11
可能是这个需要登录啥的(.jsp后面?的元素),光src这个不好使;
另外,我爬出来的代码没这个src,现在 ...

因为 src 属性是 JS 动态添加的, 这时候你有两种选择
1. 用 JS 引擎解析
2. 手工分析 JS 代码

网页嵌套在另一个网页里面

网页嵌套在另一个网页里面
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-21 23:39:47 | 显示全部楼层
src="xxxxx.jsp"
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-21 23:58:36 | 显示全部楼层

<iframe id="mainFrame" frameborder="0" name="mainFrame" border="0" width="1172px" src="/productcenter/util/sso.jsp?ticket=r%2BA9UXuTW2guHuBiUUEMEi6Q8dVNoPSPD8FuJmc4ctc%3D&amp;time=20160821223035" style="height: 1325px;"></iframe>
是指这里面的src属性的值吗?爬出来的代码没有src了:
<iframe id="mainFrame" frameborder="0" name="mainFrame" border="0" width="1172px"></iframe>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 07:37:50 | 显示全部楼层
jfjjx 发表于 2016-8-21 23:58
是指这里面的src属性的值吗?爬出来的代码没有src了:

你现在已经知道源地址了啊~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-22 08:11:55 | 显示全部楼层
SixPy 发表于 2016-8-22 07:37
你现在已经知道源地址了啊~

可能是这个需要登录啥的(.jsp后面?的元素),光src这个不好使;
另外,我爬出来的代码没这个src,现在想要只能手动到chrome的网页检查器里面找。。。。怎么破
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 08:48:51 | 显示全部楼层    本楼为最佳答案   
jfjjx 发表于 2016-8-22 08:11
可能是这个需要登录啥的(.jsp后面?的元素),光src这个不好使;
另外,我爬出来的代码没这个src,现在 ...

因为 src 属性是 JS 动态添加的, 这时候你有两种选择
1. 用 JS 引擎解析
2. 手工分析 JS 代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-22 09:32:46 | 显示全部楼层
hldh214 发表于 2016-8-22 08:48
因为 src 属性是 JS 动态添加的, 这时候你有两种选择
1. 用 JS 引擎解析
2. 手工分析 JS 代码

1.  JS引擎表示高大上啊。。。。怎么学比较好
2.  手工分析是到chrome检查器里面找到对应的加载的连接?(别如这个是自动post方法的返回的)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 09:40:51 | 显示全部楼层
jfjjx 发表于 2016-8-22 09:32
1.  JS引擎表示高大上啊。。。。怎么学比较好
2.  手工分析是到chrome检查器里面找到对应的加载的连接? ...

1. PhantomJS
2. 分析加载的时候都有哪些 JS 被执行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-8-22 10:04:09 | 显示全部楼层
hldh214 发表于 2016-8-22 09:40
1. PhantomJS
2. 分析加载的时候都有哪些 JS 被执行了

1.  马上去学
2.  分析加载时执行的JS有什么方法吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 10:40:45 | 显示全部楼层
jfjjx 发表于 2016-8-22 08:11
可能是这个需要登录啥的(.jsp后面?的元素),光src这个不好使;
另外,我爬出来的代码没这个src,现在 ...

说了那么多,你连代码都不贴,连接地址也不给
破个毛线~~
只帖一张图片的,我本来想警告你的~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 10:44:22 | 显示全部楼层
SixPy 发表于 2016-8-22 10:40
说了那么多,你连代码都不贴,连接地址也不给
破个毛线~~
只帖一张图片的,我本来想警告你的~

警告?未必太严重了啊,这样会留下违规记录

点评

那就扣鱼币吧~~  发表于 2016-8-22 10:47
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 11:33:28 | 显示全部楼层
jfjjx 发表于 2016-8-22 10:04
1.  马上去学
2.  分析加载时执行的JS有什么方法吗

一般来说是下断点然后调试
Chrome 和 FireFox 都有对应工具
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-22 11:35:07 | 显示全部楼层
SixPy 发表于 2016-8-22 10:40
说了那么多,你连代码都不贴,连接地址也不给
破个毛线~~
只帖一张图片的,我本来想警告你的~

import requests
url = "https://cbsprodcenter.noahwm.com/productcenter/pcIndex.jsp?ticket=EOc94hJOV3F5hmsporrKFVCrX1WEZ4Om%2bJC31cBURvk%5d&time=20160822112507&showHome=1"
rget = requests.get(url)
with open("htm_code.txt","wb") as f:
    f.write( rget.content )
f.close()
print('Done')


没贴代码是因为基本就只有一个requests.get()方法,而且爬下来的东西跟想问的又没啥关系。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 11:55:24 | 显示全部楼层
jfjjx 发表于 2016-8-22 11:35
import requests
url = "https://cbsprodcenter.noahwm.com/productcenter/pcIndex.jsp?ticket=EOc94hJO ...

你怎么知道没关系?
初学者就提问就要 贴代码 和 原数据,不要做过多的个人判断。
=============
你给的源地址里有3个参数;
  1. ticket=EOc94hJOV3F5hmsporrKFVCrX1WEZ4Om%2bJC31cBURvk%5d
  2. &time=20160822112507
  3. &showHome=1
复制代码


在页面源码里可以找到:
  1. <script type="text/javascript">
  2.         var ticket = 'EOc94hJOV3F5hmsporrKFVCrX1WEZ4Om+JC31cBURvk]';
  3.         var time = '20160822112507';
  4.         var showHome='1';
  5.         var productId='';
  6. </script>
复制代码


进而,在生成的 iframe src 就是:
  1. src="/productcenter/util/sso.jsp?
  2. ticket=EOc94hJOV3F5hmsporrKFVCrX1WEZ4Om%2BJC31cBURvk%5D
  3. &time=20160822112507"
复制代码


最后,你自己开动脑筋,理解它们之间的关系吧~


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-22 12:34:30 | 显示全部楼层
SixPy 发表于 2016-8-22 11:55
你怎么知道没关系?
初学者就提问就要 贴代码 和 原数据,不要做过多的个人判断。
=============

辛苦,下次谨记!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-6 18:49:44 | 显示全部楼层
本帖最后由 jfjjx 于 2016-9-6 18:54 编辑
SixPy 发表于 2016-8-22 11:55
你怎么知道没关系?
初学者就提问就要 贴代码 和 原数据,不要做过多的个人判断。
=============


里面生成网页(即图片中#document这一部分)怎么获得,得到的链接页面的页面源代码没有这部分
223412pspppepkz1klskv5.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-8 10:15:40 | 显示全部楼层
jfjjx 发表于 2016-9-6 18:49
里面生成网页(即图片中#document这一部分)怎么获得,得到的链接页面的页面源代码没有这部分

自顶
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 08:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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