我正在尝试使用硒和python从this站点获取纬度和经度。我也在使用win32lipboard。但是每当我运行我的代码时,它会随机抛出这个错误pywintypes.error: (5, 'OpenClipboard', 'Access is denied.')
。
这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import csv
import win32clipboard
csvreader = csv.reader(open("master_data.csv", 'r'))
csvwriter = csv.writer(open('final_master_data.csv', 'w', newline=''))
headers = next(csvreader)
headers.append("latitude")
headers.append("longitude")
csvwriter.writerow(headers)
locations = list(csvreader)
chromedriver = 'C:\\Users\\UserName\\Downloads\\chromedriver.exe'
driver = webdriver.Chrome(chromedriver)
driver.get('http://www.whatsmygps.com')
for places in locations:
place = places[6] + ", " + places[4] + ", " + places[2]
location = driver.find_element_by_id("address")
location.send_keys(Keys.CONTROL, 'a')
location.send_keys(place)
location.submit()
time.sleep(3)
lat_input = driver.find_element_by_id("latitude")
lat_input.send_keys(Keys.CONTROL, 'a')
lat_input.send_keys(Keys.CONTROL, 'c')
win32clipboard.OpenClipboard()
lat = win32clipboard.GetClipboardData()
places.append(lat)
win32clipboard.CloseClipboard()
lon_input = driver.find_element_by_id("longitude")
lon_input.send_keys(Keys.CONTROL, 'a')
lon_input.send_keys(Keys.CONTROL, 'c')
win32clipboard.OpenClipboard()
lon = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
places.append(lon)
print(places)
csvwriter.writerow(places)
driver.close()
因此,每当我运行此代码时,它都会毫无问题地启动,它读取csv文件并在此站点中输入位置名称,然后开始从站点复制纬度和经度,并将其插入到另一个csv文件中。但在一段时间后,它会随机抛出错误pywintypes.error: (5, 'OpenClipboard', 'Access is denied.')
。从昨天开始我就找不到这个问题的解决方案。
更新:我正在使用Anaconda,并且我以管理员身份运行anaconda shell,所以访问权限没有问题。
https://stackoverflow.com/questions/53594046
复制相似问题