• 售前

  • 售后

热门帖子
入门百科

python爬虫selenium模块详解

[复制链接]
嫣冉 显示全部楼层 发表于 2021-10-26 13:56:00 |阅读模式 打印 上一主题 下一主题
目录


  • selenium模块

    • selenium根本概念
    • 根本利用
    • 基于欣赏器自动化的利用
    • selenium处置惩罚iframe:
    • selenium模拟登岸QQ空间
    • 无头欣赏器和规避检测


selenium模块



selenium根本概念

selenium上风
      
  • 便捷的获取网站中动态加载的数据  
  • 便捷实现模拟登岸
selenium利用流程:
1.环境安装:
  1. pip install selenium
复制代码
2.下载一个欣赏器的驱动步调(谷歌欣赏器)
3.实例化一个欣赏器对象

根本利用

代码
  1. from selenium import webdriver
  2. from lxml import etree
  3. from time import sleep
  4. if __name__ == '__main__':
  5. bro = webdriver.Chrome(r"E:\google\Chrome\Application\chromedriver.exe")
  6. bro.get(url='http://scxk.nmpa.gov.cn:81/xk/')
  7. page_text = bro.page_source
  8. tree = etree.HTML(page_text)
  9. li_list = tree.xpath('//*[@id="gzlist"]/li')
  10. for li in li_list:
  11.   name = li.xpath('./dl/@title')[0]
  12.   print(name)
  13. sleep(5)
  14. bro.quit()
复制代码
基于欣赏器自动化的利用

代码
  1. #编写基于浏览器自动化的操作代码
  2. - 发起请求: get(url)
  3. - 标签定位: find系列的方法
  4. - 标签交互: send_ keys( 'xxx' )
  5. - 执行js程序: excute_script('jsCod')
  6. - 前进,后退: back(),forward( )
  7. - 关闭浏览器: quit()
复制代码
代码
https://www.taobao.com/
  1. from selenium import webdriver
  2. from time import sleep
  3. bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
  4. bro.get(url='https://www.taobao.com/')
  5. #标签定位
  6. search_input = bro.find_element_by_id('q')
  7. sleep(2)
  8. #执行一组js代码,使得滚轮向下滑动
  9. bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
  10. sleep(2)
  11. #标签交互
  12. search_input.send_keys('女装')
  13. button = bro.find_element_by_class_name('btn-search')
  14. button.click()
  15. bro.get('https://www.baidu.com')
  16. sleep(2)
  17. bro.back()
  18. sleep(2)
  19. bro.forward()
  20. sleep(5)
  21. bro.quit()
复制代码
selenium处置惩罚iframe:
  1. - 如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
  2. - 动作链(拖动) : from selenium. webdriver import ActionChains
  3.         - 实例化一个动作链对象: action = ActionChains (bro)
  4.         - click_and_hold(div) :长按且点击操作
  5.         - move_by_offset(x,y)
  6.         - perform( )让动作链立即执行
  7.         - action.release( )释放动作链对象
复制代码
代码
https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable
  1. from selenium import webdriver
  2. from time import sleep
  3. from selenium.webdriver import ActionChains
  4. bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
  5. bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
  6. bro.switch_to.frame('iframeResult')
  7. div = bro.find_element_by_id('draggable')
  8. #动作链
  9. action = ActionChains(bro)
  10. action.click_and_hold(div)
  11. for i in range(5):
  12. action.move_by_offset(17,0).perform()
  13. sleep(0.3)
  14. #释放动作链
  15. action.release()
  16. bro.quit()
复制代码
selenium模拟登岸QQ空间

代码
https://qzone.qq.com/
  1. from selenium import webdriver
  2. from time import sleep
  3. bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
  4. bro.get('https://qzone.qq.com/')
  5. bro.switch_to.frame("login_frame")
  6. switcher = bro.find_element_by_id('switcher_plogin')
  7. switcher.click()
  8. user_tag = bro.find_element_by_id('u')
  9. password_tag = bro.find_element_by_id('p')
  10. user_tag.send_keys('1234455')
  11. password_tag.send_keys('qwer123')
  12. sleep(1)
  13. but = bro.find_element_by_id('login_button')
  14. but.click()
复制代码
无头欣赏器和规避检测

代码
  1. from selenium import webdriver
  2. from time import sleep
  3. #实现无可视化界面
  4. from selenium.webdriver.chrome.options import Options
  5. #实现规避检测
  6. from selenium.webdriver import ChromeOptions
  7. #实现无可视化界面
  8. chrome_options = Options()
  9. chrome_options.add_argument('--headless')
  10. chrome_options.add_argument('--disable-gpu')
  11. #实现规避检测
  12. option = ChromeOptions()
  13. option.add_experimental_option('excludeSwitches',['enable-automation'])
  14. bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe",chrome_options=chrome_options,options=option)
  15. bro.get('https://www.baidu.com')
  16. print(bro.page_source)
  17. sleep(2)
  18. bro.quit()
复制代码
到此这篇关于python爬虫selenium模块详解的文章就介绍到这了,更多干系python爬虫selenium模块内容请搜刮草根技能分享从前的文章或继承欣赏下面的干系文章盼望各人以后多多支持草根技能分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作