我在網上找到一個代碼,目前我正在嘗試啟動它。但我在運行中遇到了一些問題。如果有人能幫助我,那就太好了。謝謝你。
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)
驅動程式.退出()
return list.
def scrape(url)。
執行者.提交(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)
驅動程式.退出()
urls = getlinks("a link")
for url in urls * 10: #количество инстансов.
scrape(url)
錯誤:
Traceback (most recent call last):
檔案 "D:PyCharm Community Edition 2021.2.1pluginspython-cehelperspydevpydevd.py", 行 1483, in _exec
pydev_imports.execfile(file, globals, locals) # 執行腳本"D:PyCharm Community Edition 2021.2.1pluginspython-cehelperspydev\_pydev_imps\_pydev_execfile.py", 行 18, in execfile
exec(compile( contents "
", file, 'exec'), glob, loc)
檔案 "C:/Users/User/PycharmProjects/project/main.py", 行 15.
字母 = string.ascii_lowercase
^
IndentationError: expected an indented block
(鏈接)寫入的地方必須是一個目標鏈接 和哪里(路徑)必須是chromedriver.exe的路徑
。uj5u.com熱心網友回復:
好日子!
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"/span>,
options=chromeOptions)
# path к chromedriver[/span
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)
驅動程式.退出()
return list.
def scrape(url)。
執行者.提交(scraper, url)
Executor.submit(scraper, a link/ generate_random_string(10)
#генерируем мусорные ссылки, если надо.
#есть функция поиска илюбые другие страницы с тяжелыми запросами в БД,
#этот варинт - твой
def scraper(url)。
driver = webdriver.Chrome(executable_path="the path"/span>,
options=chromeOptions)
#path к chromedriver[/span
driver.get(url)
time.sleep(15)
驅動程式.退出()
urls = getlinks("a link")
for url in urls * 10: #количество инстансов.
scrape(url)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327063.html
標籤:
