• selenium,webdriver模仿浏览器访问百度 基础1


    这是一种比较好的反反爬技术

    #安装:pip install selenium=2.48.0
    #显示:pip show selenium
    #卸载:pip uninstall selenium
    
    #模拟用户行为
    from selenium import webdriver
    import os
    import time
    from selenium import common
    
    #生成一个浏览器对象
    driver = webdriver.PhantomJS()
    
    #访问
    driver.get('http://www.baidu.com/')
    
    #创建文件夹存放数据
    root_dir = 'baidu'
    if not os.path.exists(root_dir):
        os.mkdir(root_dir)
    
    #存储的文件夹及命名的文件名
    file_name = root_dir + '/homepage.png'
    #截屏并保存图片
    driver.save_screenshot(file_name)
    
    #模拟用户行为操作
    timeout = 4
    count = 0
    #输入行为
    while True:
        #只进行访问四次  访问不成功就终止
        if count > 4:
            break
        try:
            #通过id号找到百度的输入框
            obj = driver.find_element_by_id('kw')
            #在找到的输入框中 输入文字
            obj.send_keys(u'章丘铁锅')
            print(obj)
            break
        except common.exceptions.NoSuchElementException as e:
            print(e)
            #报错后 等待4秒 再次访问
            time.sleep(timeout)
            count += 1
    #存储的文件夹及命名的文件名
    file_name = root_dir + '/homepage_zhangqiutieguo.png'
    #截屏并保存图片
    driver.save_screenshot(file_name)
    
    #模拟鼠标点击操作
    #通过id号找到点击按钮
    su = driver.find_element_by_id('su')
    #点击
    su.click()
    
    #等到4秒 等页面加载完成
    time.sleep(4)
    #存储的文件夹及命名的文件名
    file_name = root_dir + '/homepage_search.png'
    #截屏并保存图片  运行后就可以看到 相当于在百度输入章丘铁锅后的页面  想想都很激动呢
    driver.save_screenshot(file_name)
  • 相关阅读:
    复合文档(Compound Document)读写栗子
    JavaScript修改IE注册表
    mysql_real_connect 端口号说明
    _beginthreadex创建线程,立即执行?
    Access 是/否 字段
    JavaScript格式化日期输出
    STM32-串行SPI nor
    全球唯一标识符:GUID在线生成
    如何交叉编译Python到ARM-Linux平台(转)
    CMOS Sensor的调试经验分享(转)
  • 原文地址:https://www.cnblogs.com/zhangboblogs/p/8562400.html
Copyright © 2020-2023  润新知