分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

selenium登录网站获取cookies请求其他数据

发布时间:2023-09-06 01:21责任编辑:胡小海关键词:selenium

1.selenium登录网站

1)selenium访问起始网址后一定要等待登录框完全渲染出现,无页面的浏览器可以打印出page_source出来看是否登录框已出现

2)登录框已出现的情况下,如果给用户名输入框输入值,发现报错,说找不到此节点,则看下是否在iframe中,在的话,需要switch_to.frame进入

3)用户名和密码输入间隔要像人输入的时间差不多,过快可能会被发现是模拟点击登陆

4)有的网站在登陆按钮上设置障碍,可能会发现是非人操作,这时可以用enter操作代替,跳过点击登录这一步,完美避开

5)登录后(判断是否是登录了,可以打印当前的current_url,看是否是登陆后的url)获取cookies(这时要注意如果登录在iframe,需要返回主页面)赋值到requests

6)这时用requests去请求网站登录后页面,即可正常响应,不会跳到登录页

sites = []
s = requests.Session()
start_url = ‘https://passport.umeng.com/login?appId=cnzz‘
try:
???print ‘登录友盟‘
???driver.delete_all_cookies()
???driver.get(start_url)
???# print driver.current_url ,driver.page_source
???driver.switch_to.frame("alibaba-login-box") #进入登录iframe
???time.sleep(10)
???elem_user = driver.find_element_by_id("fm-login-id")
???time.sleep(10)
???elem_user.send_keys("pjq518@qq.com");
???elem_pwd = driver.find_element_by_id(‘fm-login-password‘)
???time.sleep(10)
???elem_pwd.send_keys("tangdaoya2016") ?
???time.sleep(10)
???elem_pwd.send_keys(Keys.ENTER) #网站模拟点击登录按钮会出错,直接在密码输完后enter进行登录即可
???time.sleep(10)
???if driver.current_url != start_url:
???????print ‘登陆成功‘,driver.current_url
???????driver.switch_to_default_content()#需要返回主页面,不然获取的cookies不是登陆后cookies
???????list_cookies = driver.get_cookies()
???????cookies = {}
???????for s in list_cookies:
???????????cookies[s[‘name‘]] = s[‘value‘]
???????requests.utils.add_dict_to_cookiejar(s.cookies, cookies) #将获取的cookies带入请求中
???????print ‘cookies:‘,cookies,self.config.url_list
???????url_list = ‘ttps://web.umeng.com/main.php?c=site&a=show&ajax=module=list|module=isOpenTongji&search=&currentPage=1&pageType=30&sort=0‘ #url_list是登陆后才能请求到数据的api
???????r = json.loads(s.get(url_list).content)
???????for temp in r[‘data‘][‘list‘][‘items‘]:
???????????if isinstance(temp,dict):
???????????????sites.append({"siteid":temp["siteid"],"name":temp["name"]})
???
except:
???print ‘登陆失败‘
???traceback.print_exc()
finally:
???driver.quit()
???display.stop()

selenium登录网站获取cookies请求其他数据

原文地址:http://www.cnblogs.com/lingwang3/p/7750156.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved