爬虫基础 --selenium库(解决JS渲染问题)

这篇博客介绍了如何利用Selenium库解决JavaScript渲染问题,包括声明浏览器与访问页面、导航、元素定位、异步等待以及异常处理。还提供了一个实例,展示了如何爬取淘宝美食页面。
摘要由CSDN通过智能技术生成

官方文档:http://selenium-python-docs-zh.readthedocs.io/zh_CN/latest/
模拟浏览器中网页的跳转,输入,点击,下拉
-安装:
pip install selenium
chromedriver : http://chromedriver.storage.googleapis.com/index.html
(谷歌若是最新版的就安装v2.36)

声明浏览器与访问页面

注:selenium支持很多浏览器,一般在测试阶段使用Chrome(需要下载Chromedriver,并配置环境变量);在运行阶段使用PhantomJS(需要配置环境变量),该浏览器可以无界面测试,网络截屏,页面自动化。

    from selenium import webdriver

    driver=webdriver.Chrome()   #声明浏览器对象
    driver.get("http://www.baidu.com") #通过浏览器打开百度页面
    print(driver.page_source) #得到网页html信息
    driver.close()  #关闭浏览器

导航

-页面交互(向文本框和文本域输入内容)
  #获取一个元素
  element=driver.find_element_by_id("pass_id")
  #通过send_keys方法输入文本信息
  element.send_keys("some text")
  #文本内容不会自动清除,因此避免干扰下次的操作需要清楚
  element.clear()

-填充表单(下拉选项框,并选中)
  #选中特定的选项---select方法
    from selenium.webdriver.support.ui import Select
    select = Select(driver.find_element_by_name('name'))
    select.selct_by_index(index)
    select.select_by_visible_text("text")
    select.select_by_value(value)
  #取消选中项--select.deselect_all方法
    select = Select(driver.find_element_by_id('id'))
    select.deselect_all()
  #提交表单 .click方法
    # 假设存在一个提交按钮的ID 为"submit" 
    driver.find_element_by_id("submit").click()

-拖拽(将一个元素拖拽指定的距离或到另一个元素上)
    #ActionChains方法
from selenium.webdriver import ActionChains

element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element,target).perform()    
-在窗口和框架间移动
    #将框架切换到另一个框架
        driver.switch_to_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值