python3&selenium&firefox 抓数据的环境搭建

这应该是一个比较弱的抓数据的方法,但有时也会用到,记录一下. 

browser: firefox

python3: v3.7.4

windows10

准备:

  • 安装selenium:

pip install selenium -i Simple Index

在以下位置下载对应版本的exe放在firefox的安装目录下(我的在C:\Program Files\Mozilla Firefox)

并将firefox的安装位置添加至环境变量path中

常用api主要集中在python安装目录Python\Python37\Lib\site-packages\selenium\webdriver\remote下的这两支文件里

webdriver.py

webelement.py

看看这两支文件的里面的方法后基本使用就一目了然了. 

下面对当前使用的常用方法进行说明

  • 打开浏览器, 以下这句就会打开浏览器:

       browser = webdriver.Firefox()

  • 打开指定网页,需要指定url

       url = 'www.baidu.com'

       browser.get(url)

  • 最大、最小化浏览器

       browser.minimize_window()

       browser.maximize_window()

  • 对页面Element的定位,推荐用xpath和link_text定位

    

      实例:browser.find_element_by_xpath('''//*[@id="ext-gen245"]''')

  • 对浏览器的常规操作

    

  • 对Element的取值, 有两种

       element_obj.get_attribute('value')

       element_obj.text

  • 设置Element对象的值,即输入值

       element_obj.send_keys(*value)

  • 判断Element是否被选中或可见的状态

       is_display()

       is_selected()

       is_enable()

  • 鼠标双击,要先导入

       from selenium.webdriver.common.action_chains import ActionChains # 用于鼠标双击

       ActionChains(browser).double_click(element_ojb).perform()

  • 滑动屏幕

       js = "var q=document.getElementById('ext-gen351').scrollTop=-100"   # 这里的100可修改,为滑动距离

       browser.execute_script(js)

  • 判断一个Element_obj是否存在,当前没有直接的api可用,可以自动写一个func来判断,以下为参考
def isElementExist(find_element_by_x, type='xpath'):
    flag = True
    try:
        if type == 'xpath':
            driver.find_element_by_xpath(f'''{find_element_by_x}''')
        if type == 'link_name':
            driver.find_element_by_link_text(f'{find_element_by_x}')
    except:
        flag = False
        
    return flag     

如果掌握了以上的基本知识点,基本就可以用python对firefox进行操作控制,也不失为一种获取数据的简单方法. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值