Python selenium与pyautogui控制浏览器实现modis数据自动下载

这篇具有很好参考价值的文章主要介绍了Python selenium与pyautogui控制浏览器实现modis数据自动下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

序言:

准备工作:

基本思路:

完整代码:


序言:

        上次提到通过modis连接下载数据的方式有很多,本文选择selenium模拟登录的方式通过谷歌浏览器下载,但是并不推荐这种方法,只是恰好学习了selenium的一些操作,所以写这个代码做了一些测试。

        本文章只需要具备一定的selenium与pyautogui基础知识,需要下载好selenium库以及浏览器驱动。(本文采用的是谷歌浏览器,python版本为3.10)

准备工作:

  • 首先得在NASA官网上注册一个账号,有了账号才能实现登录

NASA官网账号注册https://urs.earthdata.nasa.gov/users/new

  • 安装selenium库以及pyautogui(pip install 库名)

基本思路:

1、当我们第一次访问连接时,会弹出登录窗口,但是我们不用捕捉元素,光标已经在用户名里面,所以直接使用pyautogui执行自动登录操作。(重点注意如果username存在字母输入法一定得是英文)

Python selenium与pyautogui控制浏览器实现modis数据自动下载

    def modis_get(self):
        n = 0
        with open('data.txt', 'r') as f:
            for line in f.readlines():
                if n == 0:
                    self.driver.get(line)
                    pyautogui.typewrite(self.username, 0.1)
                    pyautogui.press('tab')
                    pyautogui.typewrite(self.password, 0.1)
                    pyautogui.press('tab')
                    time.sleep(0.5)
                    pyautogui.press('enter')
                    n += 1
                    print(f'开始下载第{n}个数据')
                else:
                    self.driver.get(line)
                    n += 1
                    print(f'开始下载第{n}个数据')

2、下载路径管理,浏览器默认的下载路径是C:\Users\86182\Downloads,如果数据量大最好更改路径下载便于管理。

    def path_change(self, path=r'C:\Users\86182\Downloads'):

        chrome_options = webdriver.ChromeOptions()
        prefs = {'profile.default_content_settings.popups': 0,  # 防止保存弹窗
                 'download.default_directory': path,  # 设置默认下载路径
                 "profile.default_content_setting_values.automatic_downloads": 1  # 允许多文件下载
                 }
        chrome_options.add_experimental_option('prefs', prefs)
        self.driver = webdriver.Chrome(options=chrome_options)

3、关于浏览器下载路径的设置,一定要先执行设置方法,再执行下载方法。文章来源地址https://www.toymoban.com/news/detail-513324.html

    def main_get(self):
        self.path_change(self.new_path)
        self.modis_get()

完整代码:

'''****************selenium模拟登录并实现通过浏览器下载数据**********************
    作者:荷兰豆养殖专家
    ps:该方法纯属歪门邪道
'''

from selenium import webdriver
import pyautogui
import time


class Selenium_modis_get(object):
    def __init__(self, new_path=None, username=None, pd=None, target_path=None):
        self.new_path = new_path
        self.username = username
        self.password = pd
        self.target_path = target_path

    def modis_get(self):
        n = 0
        with open(self.target_path, 'r') as f:
            for line in f.readlines():
                if n == 0:
                    self.driver.get(line)
                    pyautogui.typewrite(self.username, 0.1)
                    pyautogui.press('tab')
                    pyautogui.typewrite(self.password, 0.1)
                    pyautogui.press('tab')
                    time.sleep(0.5)
                    pyautogui.press('enter')
                    n += 1
                    print(f'开始下载第{n}个数据')
                else:
                    self.driver.get(line)
                    n += 1
                    print(f'开始下载第{n}个数据')

    def path_change(self, path=r'C:\Users\86182\Downloads'):

        chrome_options = webdriver.ChromeOptions()
        prefs = {'profile.default_content_settings.popups': 0,  # 防止保存弹窗
                 'download.default_directory': path,  # 设置默认下载路径
                 "profile.default_content_setting_values.automatic_downloads": 1  # 允许多文件下载
                 }
        chrome_options.add_experimental_option('prefs', prefs)
        self.driver = webdriver.Chrome(options=chrome_options)


    def main_get(self):
        self.path_change(self.new_path)
        self.modis_get()


if __name__ == '__main__':
    modis = Selenium_modis_get(target_path='你的目标文件路径(绝对)',new_path=r'你希望下载的路径', username='你的username', pd='')
    modis.main_get()
    # modis.path_change()#数据下载完之后单独执行此代码即可改回默认下载路径(modis.main_get()注释掉)

到了这里,关于Python selenium与pyautogui控制浏览器实现modis数据自动下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python通过selenium爬取网页信息,python获取浏览器请求内容,控制已经打开的浏览器

    背景:通过python中直接get或者urlopen打开一些有延迟加载数据的网页,会抓取不到部分信息。 1. 命令行打开chrome,并开启调试端口 (前提,找到chrome安装目录,找到chrome.exe所在路径,添加到环境变量中,例如我的是C:Program FilesGoogleChromeApplication) remote-debugging-port指定远程调试

    2024年02月16日
    浏览(55)
  • python-selenium控制浏览器多开窗口

    1、视频展示-多开5个百度页面 目录结构 只要在当前目录下放上自己所在的谷歌驱动器:谷歌驱动器如何下载,请参考博客:请点我 奉上代码

    2024年02月16日
    浏览(44)
  • python爬虫教程:selenium常用API用法和浏览器控制

    selenium api selenium 新版本( 4.8.2 )很多函数,包括元素定位、很多 API 方法均发生变化,本文记录以 selenium4.8.2 为准。 webdriver 常用 API 方法 描述 get(String url) 访问目标url地址,打开网页 current_url 获取当前页面url地址 title 获取页面标题 page_source 获取页面源代码 close() 关闭浏览器当

    2024年02月05日
    浏览(38)
  • 关于python的selenium控制已经打开的edge浏览器

     下载edge驱动后,放在edge的exe文件同目录下,并将exe的目录添加到系统“用户“变量path中。之后在exe目录下打开cmd 。在cmd中输入msedge.exe --remote-debugging-port=9222 --user-data-dir=\\\"D:pythonseleniumEdge\\\"      -----注意:提前建这个文件夹\\\"D:pythonseleniumEdge\\\" 

    2024年02月07日
    浏览(36)
  • Selenium | 控制已打开的浏览器-python-edge

    诡异的验证码和微信扫码登录着实让爬虫难堪,那是否可以在已经打开的浏览器基础上,继续运行自动化脚本?通过手工登录后,再让脚本执行程序,这样可以解决很大的一个痛点。 右键点击桌面上的“Edge浏览器”,点击“属性”。 复制“ 起始位置 ”路径。 插句话:点击“

    2024年02月03日
    浏览(39)
  • 爬虫-华为云空间备忘录导出到docx-selenium控制浏览器行为-python数据处理

    老的荣耀手机属于华为云系统,家里人换了新荣耀手机属于荣耀云系统无法通过云空间将备忘录转移到新手机,不想让他们一个一个搞,于是整了一晚上想办法爬取下来。从网页抓取下来,然后存到docx文档中(包括文字和图片,别的形式的内容请举一反三) 多行图片多行文

    2024年02月19日
    浏览(45)
  • selenium 之 控制打开的浏览器

    使用背景: 当我们需要在打开的浏览器中进行自动化操作时需要用到此方法。 1、为了防止污染别的环境(同一个网站多个账号爬取的情况),最好对浏览器使用新的端口创建debug副本。 具体操作如下 (1)右键浏览器创建副本(或者直接复制) (2)在新生成的快捷方式上右

    2024年02月14日
    浏览(33)
  • Selenium入门必备:学会用代码控制浏览器,打开网页、找到元素和退出浏览器

    目录 一、前期准备 1、概述 2、学习目标 3、安装 二、selenium的基本使用 1、加载网页: 2、定位和操作: 3、查看请求信息: 4、退出 小结 三、元素定位的方法 学习目标 1、selenium的定位操作 2、元素的操作 小结 四、selenium的其他操作 学习目标 1、无头浏览器 1、selenium 处理

    2024年02月13日
    浏览(89)
  • 利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

    首先,需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例,可以使用以下命令安装selenium和chromedriver: 然后,需要下载对应版本的chromedriver,并将其添加到环境变量中。下载地址:http://chromedriver.storage.googleapis.com/index.html 不懂安装的,可以参考Chormedriver下载和安

    2024年02月09日
    浏览(38)
  • selenium如何接管(控制)已打开Chrome浏览器

    一、目标 使用selenium接管已经打开的Chrome浏览器,并以百度网站为例,输出“百度一下”标签元素。 注: 我的终端是windows系统,适用于windows系统 二、实现步骤 1. 首先用cmd命令切换到终端安装Chrome的路径 下面是我的终端chrome安装路径,不同终端安装可能不一样, 若是不一

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包