首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决execfile中的python回溯错误?

如何解决execfile中的python回溯错误?
EN

Stack Overflow用户
提问于 2021-09-20 21:12:21
回答 1查看 75关注 0票数 0

我在网上找到了一个代码,目前我正在尝试启动它。但我在跑步过程中遇到了一些问题。如果有人能帮我,那就太好了。谢谢。

代码语言:javascript
运行
复制
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)

错误:

代码语言:javascript
运行
复制
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的路径

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-20 21:27:19

日安!

Python使用缩进来分隔代码块。每次输入新的作用域时,python解释器都会期望一个缩进的代码块。这就是你应该如何重新格式化你的代码。(只是为了确保我想添加运行此代码所需的适当selenium设置。)

代码语言:javascript
运行
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69260874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档