爬虫爬到的网页源码和按F12查看的网页源码不一致。有缺少为什么啊?

泡白 2018-05-02 10:59:22
[size=18px][size=13px]python我在用selenium模拟登陆163邮箱(https://mail.163.com/)然后怎么都定位不到它的登陆id。
最后发现是用爬虫爬的数据源码和F12的数据源码不一致。
为什么会这样呢?大神能不能解释一下。

图一是我按F12显示的 id="loginDiv" 下面还有很多内容。就是登陆界面的核心。
但是爬虫爬到的源码里面<div class="loginUrs" id="loginDiv"></div> div 直接结束了。里面内容就没了。
为什么会这样,请大神给个想法,然后如果哪位大神空的化可以帮我实现一下模拟登陆然后给我借鉴吗?
求~~~~~~
...全文
5762 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yikudeanu 2020-05-22
  • 打赏
  • 举报
回复
引用 8 楼 离尉 ◎ 的回复:
楼主。。。。你是懂了。。。我还没懂。。。。
#定位iframe元素 browser.switch_to.frame(browser.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))
离尉 ◎ 2020-02-07
  • 打赏
  • 举报
回复
楼主。。。。你是懂了。。。我还没懂。。。。
Wl_Y0513 2019-09-26
  • 打赏
  • 举报
回复
感谢,原来是这问题,弄了大半天,搞定了。。。
泡白 2018-05-04
  • 打赏
  • 举报
回复
知道了。看了这个链接https://blog.csdn.net/qaz_wz/article/details/70861181 ,原来有frame/iframe 表单嵌套页面的应用。要要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe 表单的内嵌页面中。 需要的转过去看吧。
泡白 2018-05-04
  • 打赏
  • 举报
回复
引用 4 楼 qq_26877377 的回复:
driver = webdriver.Chrome(executable_path='/home/python/Desktop/chromdriver/chromedriver') driver.get("http://i.baihe.com/#ctrl=register&act=login") time.sleep(5) # 登录帐号 driver.find_element_by_id("vLoginTxtAcc").send_keys('帐号') driver.find_element_by_id("vLoginTxtPwd").send_keys('密码') driver.find_element_by_id("vLoginDoLogin").click() 这个是以前用selenium爬百合网的 你可以试试在请求以后,在查找id以前加一个延时,你先用Chrome的驱动来调试好 这样你可以看见selenium都做了什么,调试好了在换成其它无头浏览器
你好我试了你的方法,做了延时在,在百合网延时和没有延时网页源码是有差别的,但是在163邮件模拟登陆里面我延时了10秒和没有延时源码爬出来是一样的。就是少了一部分,和按F12就是差那么一部分登陆那内容的源码,我用的也是selenium爬的用的是driver.page_source打印的。但是爬不到那部分所以也锁定不了,也输入不了账号密码。。。。我很头痛。。。
  • 打赏
  • 举报
回复
driver = webdriver.Chrome(executable_path='/home/python/Desktop/chromdriver/chromedriver') driver.get("http://i.baihe.com/#ctrl=register&act=login") time.sleep(5) # 登录帐号 driver.find_element_by_id("vLoginTxtAcc").send_keys('帐号') driver.find_element_by_id("vLoginTxtPwd").send_keys('密码') driver.find_element_by_id("vLoginDoLogin").click() 这个是以前用selenium爬百合网的 你可以试试在请求以后,在查找id以前加一个延时,你先用Chrome的驱动来调试好 这样你可以看见selenium都做了什么,调试好了在换成其它无头浏览器
泡白 2018-05-03
  • 打赏
  • 举报
回复
引用 2 楼 jordancar 的回复:
网页最终显示的页面源码是经过浏览器解释后的,你get或者post请求到的源码是服务器直接返回的,不一样是正常的。
那我要爬虫定位这部分内容然后输入账号密码的话,怎么样可以做到呢?
小布 2018-05-03
  • 打赏
  • 举报
回复
网页最终显示的页面源码是经过浏览器解释后的,你get或者post请求到的源码是服务器直接返回的,不一样是正常的。
泡白 2018-05-02
  • 打赏
  • 举报
回复
大神来看下呀。

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧