您现在的位置是:亿华云 > 人工智能
Python爬虫的第二种姿势,Selenium框架案例讲解
亿华云2025-10-03 02:46:06【人工智能】3人已围观
简介selenium使用流程:1.环境安装:pipinstallselenium 2.下载一个浏览器的驱动程序(谷歌浏览器)3.实例化一个浏览器对象基本使用代码fromseleniumimp
selenium使用流程:
1.环境安装:
pip install selenium2.下载一个浏览器的爬虫驱动程序(谷歌浏览器)
3.实例化一个浏览器对象基本使用
代码
from selenium import webdriver from lxml import etree from time import sleep if __name__ == __main__: bro = webdriver.Chrome(r"E:\google\Chrome\Application\chromedriver.exe") bro.get(url=http://scxk.nmpa.gov.cn:81/xk/) page_text = bro.page_source tree = etree.HTML(page_text) li_list = tree.xpath(//*[@id="gzlist"]/li) for li in li_list: name = li.xpath(./dl/@title)[0] print(name) sleep(5) bro.quit()基于浏览器自动化的操作代码
#编写基于浏览器自动化的操作代码
发起请求: get(url) 标签定位: find系列的方法 标签交互: send_ keys( xxx ) 执行js程序: excute_script(jsCod) 前进,后退: back(),种姿forward( ) 关闭浏览器: quit()1代码
https://www.taobao.com/ from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe") bro.get(url=https://www.taobao.com/) #标签定位 search_input = bro.find_element_by_id(q) sleep(2) #执行一组js代码,源码下载使得滚轮向下滑动 bro.execute_script(window.scrollTo(0,架案解document.body.scrollHeight)) sleep(2) #标签交互 search_input.send_keys(女装) button = bro.find_element_by_class_name(btn-search) button.click() bro.get(https://www.baidu.com) sleep(2) bro.back() sleep(2) bro.forward() sleep(5) bro.quit()selenium处理iframe:
如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id) 动作链(拖动) : from selenium. webdriver import ActionChains 实例化一个动作链对象: action = ActionChains (bro) click_and_hold(div) :长按且点击操作 move_by_offset(x,例讲y) perform( )让动作链立即执行 action.release( )释放动作链对象代码
https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable from selenium import webdriver from time import sleep from selenium.webdriver import ActionChains bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe") bro.get(https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable) bro.switch_to.frame(iframeResult) div = bro.find_element_by_id(draggable) #动作链 action = ActionChains(bro) action.click_and_hold(div) for i in range(5): action.move_by_offset(17,0).perform() sleep(0.3) #释放动作链 action.release() bro.quit()selenium模拟登陆QQ空间
代码
https://qzone.qq.com/ from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe") bro.get(https://qzone.qq.com/) bro.switch_to.frame("login_frame") switcher = bro.find_element_by_id(switcher_plogin) switcher.click() user_tag = bro.find_element_by_id(u) password_tag = bro.find_element_by_id(p) user_tag.send_keys(1234455) password_tag.send_keys(qwer123) sleep(1) but = bro.find_element_by_id(login_button) but.click()无头浏览器和规避检测
代码
from selenium import webdriver from time import sleep #实现无可视化界面 from selenium.webdriver.chrome.options import Options #实现规避检测 from selenium.webdriver import ChromeOptions #实现无可视化界面 chrome_options = Options() chrome_options.add_argument(--headless) chrome_options.add_argument(--disable-gpu) #实现规避检测 option = ChromeOptions() option.add_experimental_option(excludeSwitches,[enable-automation]) bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe",chrome_options=chrome_options,options=option) bro.get(https://www.baidu.com) print(bro.page_source) sleep(2) bro.quit()【编辑推荐】
微服务面试必问的Dubbo,这么详细还怕自己找不到工作?爬虫 2021年值得关注的服务器租用5个IT行业发展趋势 免费的安全软件落寞!让人唏嘘 界面UI即将大改!种姿Windows1021H2最新预览版抢先看 微软为 Windows101909 推送 KB5000850 更新,架案解例讲修复资源管理器搜索等问题源码库很赞哦!(184)