python爬取企查查企业信息之selenium自动模拟登录企查查

时间:2021-05-22

最近接了个小项目需要批量搜索企查查上的相关企业并把指定信息保存到Excel文件中,由于企查查需要登录后才能查看所有搜索到的信息所以第一步需要模拟登录企查查。

python模拟登录企查查最重要的是自动拖拽验证插件

先介绍下项目中使用到的工具与库

Python的selenium库:

Web应用程序测试的工具,Selenium可以模拟用户在浏览器中的操作,就像真实用户使用一样。

官方技术文档:https:///",) driver.find_element_by_xpath('//a[@class="navi-btn"][1]').click() locator = (By.ID, "dom_id_two") try: WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located(locator)) except: driver.close() # WebDriverWait(driver,20,0.5).until(lambda driver:driver.find_element_by_xpath('//span[@class="nc_iconfont btn_slide"]')) # 找到账号输入框 driver.find_element_by_xpath('//input[@id="nameVerify"]').send_keys('19942496979') # 滑动条定位 start = driver.find_element_by_xpath('//span[@class="nc_iconfont btn_slide"]') action = ActionChains(driver) action.click_and_hold(start) action.drag_and_drop_by_offset(start, 308, 0).perform() time.sleep(2) style = 'position:absolute;top:0;left:0;width:100%;z-index:999;font-size:40px;line-height:100px;background:rgba(255,217,0,90%);height:100%;text-align:center;color:#000;' driver.execute_script( 'var htm=document.getElementsByClassName("login-sao-panel")[0];htm.innerHTML+="<div style={style}><b id=tt></b><b id=ts></b></div>"'.format( style=style)) ts = driver.find_element_by_id('ts') tt = driver.find_element_by_id('tt') try: driver.find_element_by_xpath('//div[@class="errloading"][1]') set_id_att(driver, 'tt', 'innerHTML', '请手工验证') except: tr = driver.find_element_by_xpath('//span[@class="nc-lang-cnt"][1]') if tr.text != '验证通过': set_id_att(driver, 'tt', 'innerHTML', '请手工验证') # for i in range(1, 6): # if tr.text == '验证通过': # break # set_id_att(driver, 'ts', 'innerHTML', i) # time.sleep(1) try: driver.find_element_by_xpath('//a[@class="text-primary vcode-btn get-mobile-code"]').click() except: pass # code=driver.find_element_by_xpath('//input[@id="vcodeNormal"]') set_id_att(driver, 'tt', 'innerHTML', '请填入手机验证码') # rjs='const callback = arguments[arguments.length - 1];callback({v:document.getElementById("vcodeNormal").value})' rjs = 'return document.getElementById("vcodeNormal").value' locator = (By.CLASS_NAME, "nav-user") but = driver.find_element_by_xpath('//form[@id="user_login_verify"]/button') for i in range(1, 1): # code = driver.execute_async_script(rjs) code = driver.execute_script(rjs) if len(code) == 6: but.click() try: #WebDriverWait(driver, 5, 0.5).until(EC.presence_of_element_located(locator)) break except: pass #return 0 set_id_att(driver, 'ts', 'innerHTML', i) time.sleep(1) headers = getheader(driver)#获取headers ip = "202.121.178.244" if headers: #获取cookie并存入headers中 cookie = [item["name"] + "=" + item["value"] for item in driver.get_cookies()] headers['cookie'] = ';'.join(item for item in cookie) del headers[':authority'] del headers[':method'] del headers[':path'] del headers[':scheme'] headers['X-Forwarded-For'] = ip headers['X-Remote-IP'] = ip headers['X-Originating-IP'] = ip headers['X-Remote-Addr'] = ip headers['X-Client-IP'] = ip return headersheaders=login()#自动登录并获取登录后的Headers包括cookies

要获取完整项目代码(selenium模拟登录企查查+requests库自动搜索获取指定信息并保存Excel)请关注上面的公众号“python客栈”然后回复“qcc

本文主要介绍了如何使用python的selenium模拟登录企查查,主要介绍了如何使用selenium保存Cookies与headers、自动验证及selenium库对页面元素的一些操作方法

下一篇将介绍Python使用requests库自动在企查查上搜索相关企业并获取指定信息

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章