首页 > 解决方案 > selenium python chromedriver 下载zip文件

问题描述

我想下载这个站点的 zip 文件(示例域)。

我的代码如下

import pandas
import requests
import os
import glob
import zipfile
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) ' \
             'Chrome/80.0.3987.132 Safari/537.36'

project_dir = os.path.dirname(os.path.realpath(__file__))

options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--ignore-certificate-errors')
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument(f'user-agent={user_agent}')
options.add_experimental_option("prefs", {
  "download.default_directory": project_dir,
  "download.prompt_for_download": False,
  "download.directory_upgrade": True,
  "safebrowsing.enabled": True
})
options.headless = True

with webdriver.Chrome(options=options) as driver:
    # --- download the sample domain zip files ---
    driver.get("https://whoisds.com/newly-registered-domains")
    wait = WebDriverWait(driver, 20)
    zip_file_link = '//td/a[contains(@href, "newly-registered-domains")]'
    links = driver.find_elements_by_xpath(zip_file_link)
    for link in links:
        driver.execute_script("arguments[0].click();", link)
        time.sleep(50)
        # I am not sure below code is necessary or not.
        # -----------------------------------------
        zip_ref = zipfile.ZipFile(project_dir, 'r')
        zip_ref.extractall(project_dir)
        zip_ref.close()
        # -----------------------------------------
....

但它显示如下错误。

Traceback (most recent call last):
      File "whois.py", line 51, in <module>
        zip_ref = zipfile.ZipFile(project_dir, 'r')
      File "C:\Users\David\Anaconda3\lib\zipfile.py", line 1207, in __init__
        self.fp = io.open(file, filemode)
 PermissionError: [Errno 13] Permission denied: 'D:\\Project\\whois.com'

我已经阅读了很多 StackOverflow 的帖子,但我找不到正确的方法。请教我如何下载 zip 文件。任何帮助表示赞赏。

标签: pythonselenium

解决方案


推荐阅读