在尝试访问目录之前,代码运行良好。感谢
这是代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import ast
import requests
import urllib.request
from bs4 import BeautifulSoup as Soup
opts = Options()
opts.add_argument("user-agent=chrome/23.0.1271")
driver = webdriver.Chrome("./chromedriver.exe")
url = 'https://s.aolcdn.com/os/ab/_cms/2020/09/09081722/568224.jpg'
directory = 'RAW'
FILETYPE = '.jpg'
r = requests.get(url,allow_redirects=True)
def find_urls(url):
driver.get(url)
wait = input('loading...lmao')
page = driver.page_source
soup = Soup(page,'lxml')
images = soup.find_all('img',{"src":True})
all_images = []
for image in images:
image_src = image['src']
print(image_src)
urllib.request.urlretrieve(image_src)
Images = find_urls(url)
def save_img(Image,directory):
if not os.path.isdir(directory):
os.mkdir(directory)
for i,link in enumerate(url):
path = os.path.join(directory,'(:06).jpg'.format(i))
try:
ulib.urlretrieve(link,path)
except:
print('Failed:')
save_img(Images,directory)
我想这可能是我访问目录的方式,但我已经用完了可以尝试的东西。我已经检查了文件夹,确保以管理员身份运行。
此错误消息。。。
ERROR:process_reader_win.cc(123)] NtOpenThread: {Access Denied}
意味着ChromeDriver启动的线程无法读取系统资源,因为访问被拒绝。
根本原因
访问被拒绝的一个常见原因是在Linux上以root
用户(administrator
(的身份运行Chrome。虽然在创建WebDriver会话时可以通过传递--no-sandbox
标志来解决此问题,但这种配置是不受支持的,并且非常不鼓励。您需要将环境配置为以常规用户身份运行Chrome。
额外考虑
确保:
- Selenium已升级到当前发布的3.141.59版本
- ChromeDriver更新到当前ChromeDriver v84.0级别
- Chrome更新到当前Chrome 84.0版本。(根据ChromeDriver v84.0发布说明(
- 如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布的Web客户端版本
- 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目
- 进行系统重新启动
- 以非root用户身份执行您的
@Test
- 总是调用CCD_ 6方法中的CCD_;优雅地销毁WebDriver和Web客户端实例