[英]How to solve the python traceback error in execfile?
我在网上找到了一个代码,目前我正在尝试启动它。 但是我在跑步时遇到了一些问题。 如果有人愿意帮助我,那就太好了。 谢谢。
from concurrent.futures.thread import ThreadPoolExecutor
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time
import random
import string
import re
chromeOptions = Options()
chromeOptions.headless = True #как будет запускаться хром - в фоне или нет
executor = ThreadPoolExecutor(20) #количество одновременных потоков
def generate_random_string(length):
letters = string.ascii_lowercase
rand_string = ''.join(random.choice(letters) for i in range(length))
return rand_string
# простейшая функция выгрузки всех ссылок с заданой страницы
def getlinks(url):
driver = webdriver.Chrome(executable_path="the path", options=chromeOptions) # path к chromedriver
list = []
driver.get(url)
a = driver.find_elements_by_xpath('.//a')
i = 0
for b in a:
i = i+1
link = b.get_attribute("href")
list.insert(i, link)
driver.quit()
return list
def scrape(url):
executor.submit(scraper, url)
executor.submit(scraper, a link/+generate_random_string(10))
#генерируем мусорные ссылки, если надо. кстати, если в тестируемом сайте есть функция поиска или любые другие страницы с тяжелыми запросами в БД, этот вариант - твой
def scraper(url):
driver = webdriver.Chrome(executable_path="the path", options=chromeOptions) #path к chromedriver
driver.get(url)
time.sleep(15)
driver.quit()
urls = getlinks("a link")
for url in urls * 10: #количество инстансов
scrape(url)
错误:
Traceback (most recent call last):
File "D:\PyCharm Community Edition 2021.2.1\plugins\python-ce\helpers\pydev\pydevd.py", line 1483, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "D:\PyCharm Community Edition 2021.2.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/User/PycharmProjects/project/main.py", line 15
letters = string.ascii_lowercase
^
IndentationError: expected an indented block
写入(链接)的位置必须是目标链接,写入的位置(路径)必须是 chromedriver.exe 的路径
Python 使用缩进来分隔代码块。 每次输入新范围时,python 解释器都需要一个缩进的代码块。 这就是您应该重新格式化代码的方式。 (只是为了确定我想补充一点,运行此代码需要适当的 selenium 设置。)
from concurrent.futures.thread import ThreadPoolExecutor
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time
import random
import string
import re
chromeOptions = Options()
chromeOptions.headless = True #как будет запускаться хром - в фоне или нет
executor = ThreadPoolExecutor(20) #количество одновременных потоков
def generate_random_string(length):
letters = string.ascii_lowercase
rand_string = ''.join(random.choice(letters) for i in
range(length))
return rand_string
# простейшая функция выгрузки всех ссылок с заданой страницы
def getlinks(url):
driver = webdriver.Chrome(executable_path="the path",
options=chromeOptions)
# path к chromedriver
list = []
driver.get(url)
a = driver.find_elements_by_xpath('.//a')
i = 0
for b in a:
i = i+1
link = b.get_attribute("href")
list.insert(i, link)
driver.quit()
return list
def scrape(url):
executor.submit(scraper, url)
executor.submit(scraper, a link/+generate_random_string(10))
#генерируем мусорные ссылки, если надо. кстати, если в тестируемом сайте
#есть функция поиска или любые другие страницы с тяжелыми запросами в БД,
#этот вариант - твой
def scraper(url):
driver = webdriver.Chrome(executable_path="the path",
options=chromeOptions)
#path к chromedriver
driver.get(url)
time.sleep(15)
driver.quit()
urls = getlinks("a link")
for url in urls * 10: #количество инстансов
scrape(url)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.