zoukankan      html  css  js  c++  java
  • selenium爬虫

    selenium

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
    在爬虫中有些需要用户登录发送验证以及某些链接加密网页,在最后的最后需要提交数据,时间较为紧迫时。js解密没有时间时,就可以使用selenium第三方模块去抓取。

    配置环境

    selenium模块可直接使用pip下载安装

    pip install selenium
    

    安装你所使用的浏览器内核,笔者使用的是chrome浏览器,所以安装的是chrome内核

    度盘:https://pan.baidu.com/s/14WZmcVv5Rrwhli9t8XlWrw
    提取码:80ia
    

    下载之后将其放在一个文件夹中,在系统中添加环境变量即可。chrome浏览器版本需和内核版本对应,笔者使用的为chrome浏览器(71.0.3578.98)

    selenium使用

    接下来用一个简单的实例来演示selenium的使用

    import time
    from selenium import webdriver
    option = webdriver.ChromeOptions()#初始化谷歌浏览器设置
    #option.add_argument('headless')#添加无头设置
    wb = webdriver.Chrome(chrome_options=option)#初始化浏览器
    try:
        wb.get('https://www.tianyancha.com/')#获取网页
        wb.set_window_size(1536, 864)#设置窗口大小
        wb.implicitly_wait(5)#隐性等待
        wb.find_element_by_xpath('//div[@id="web-content"]/div/div/div/div/div/div[2]/div/div[4]/a').click()#使用xpath获取元素位置
        wb.implicitly_wait(5)
        wb.find_element_by_xpath('//div[@onclick="loginObj.changeCurrent(1);"]').click()
        wb.implicitly_wait(5)
        wb.find_element_by_css_selector('.modulein1 > .pb30 > .input').click()
        wb.find_element_by_css_selector('.modulein1 > .pb30 > .input').send_keys(u'17858150687')#属性值传输
        wb.find_element_by_css_selector('.input-pwd').click()
        wb.find_element_by_css_selector('.input-pwd').send_keys(u'tjt201901')
        wb.find_element_by_css_selector('input.contactautoLogin').click()
        wb.find_element_by_css_selector('.modulein1 > .btn').click()
        time.sleep(5)
        print(wb.get_cookies())#输出当前页面使用的cookies
    except Exception as e:
        print(e)
    else:
    	wb.quit() #浏览器退出
    

    在代码调试阶段不建议开启无头模式,无头模式指不打开浏览器窗口,可以节省一部分内存资源。

    selenium IDE

    有些时候可能会因为要定位该元素编写xpath耗费大量的时间,这里推荐一个好用的专门用于辅助编写selenium调试的辅助工具,可在谷歌网上应用商店中找到(需要科学上网工具)在这里插入图片描述
    该工具使用类似于pycharm,新建一个项目,输出起始网址点击开始录制,在弹出的网页中进行操作,该工具会将你进行的操作和点击元素定位的xpath,css选择进行记录。
    在这里插入图片描述

    选择到具体的一条后可在target中选择使用的定位方式
    在这里插入图片描述
    这样就不用费神的去查看网页的标签编写xpath了,还是一个比较好用的辅助插件。

  • 相关阅读:
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    block的是发送信号的线程,又不是处理槽函数的线程
  • 原文地址:https://www.cnblogs.com/big-cabbage/p/10325903.html
Copyright © 2011-2022 走看看