我在网上找到了一个代码,目前我正在尝试启动它。但我在跑步过程中遇到了一些问题。如果有人能帮我,那就太好了。谢谢。
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的路径
发布于 2021-09-20 21:27:19
日安!
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)https://stackoverflow.com/questions/69260874
复制相似问题