python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。

查看:286
本文介绍了python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"]=("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36")
url ="http://wenshu.court.gov.cn/User/RegisterAndLogin?Operate=1"

driver = webdriver.PhantomJS(executable_path='C:\\Users\\wang\\Downloads\\phantomjs-2.1.1-windows\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe')

driver.get(url)
import time
time.sleep(30)
driver.find_element_by_xpath('//*[@id="login_Name"]').send_keys("398915607@qq.com")
driver.find_element_by_xpath('//*[@id="login_Pwd_Temp"]').send_keys("wstktb")
driver.find_element_by_xpath('//*[@id="btnLogin"]').click()
driver.quit()

chrome上观察源码明明都有的,这个网站看来看去也没有frame的标签,打印page_source也只有几行js代码。,小弟最近刚开始学习爬虫,实在是十分困惑啊,恳请各位求教。

解决方案

我测试了一下,第一次打开这个页面的时候,如果你没有他需要的cookie,那么你进入的就是那个全是js的页面,HTTP状态码202,此时该域名下会生成一个cookie(我不确定怎么来的)。
然后浏览器会自动刷新,js会在请求中加入一段cookie(该cookie不保存在浏览器,且每次都不一样),服务端返回正常的页面,HTTP状态码200。
题主可以用chrome的view-source来测试。
所以你说的source只有几行代码那就是第一次打开的情况,我对selenium不是很了解,不过应该是因为没有自动跳转的问题,具体原因可能是 你的配置、js中有判断。

这篇关于python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆