Сократить время, необходимое коду для завершения очисткиPython

Программы на Python
Гость
Сократить время, необходимое коду для завершения очистки

Сообщение Гость »

Я хочу сократить время, необходимое коду для завершения очистки страниц, я использую селен.
Я использовал Scrapy для этого проекта очистки, но JavaScript скрывал элементы электронной почты из Scrapy. >
Scrapy был идеален, я не знаю, есть ли способ сократить время в селене или есть другой способ, или другой инструмент или пакет, который можно использовать в таком случае?
Если есть какая-либо информация или документы, позволяющие узнать об этом больше, я буду благодарен.
Вот код:
# import the nesscery packages
from typing import Iterable
import csv
from selenium.webdriver.chrome.options import Options
from shutil import which
from selenium.webdriver import Chrome
import time
from selenium.webdriver.common.by import By
import logging
from selenium.webdriver.support.ui import WebDriverWait

logging.basicConfig(level=logging.INFO)

path = r"C:\Users\HP\Desktop\scraping\chromedriver.exe"
options = Options()
options.headless=True
driver =Chrome(executable_path=path, options=options)
start_time = time.ctime()
end_time = time.ctime()

data = []
page_no = 1
base_url = f"https://www.mdpi.com/search?sort=pubdat ... ew=default"

print (start_time)

for page_no in range(218,219):
# visit the link (the main web page)
logging.info(f"Scraping page number : {page_no} ")

url = base_url.format(page_no)
driver.get(url)
time.sleep(1)

# extracting the articles links from the main page
article_links = driver.find_elements_by_xpath(".//a[@class='title-link']")
article_hrefs = [lnk.get_attribute("href") for lnk in article_links]

# loop through all the article links to extract the specified information
for href in article_hrefs:
# Visit the article page
logging.info(f"Scraping article: {href}")
driver.get(href)
time.sleep(1)

# extracting title, author name and his email from article page
title_element = driver.find_element(By.XPATH,".//h1[contains(@class,'title')]")
title = title_element.text

author_element= author_element = driver.find_element(By.XPATH, ".//a[@class='profile-card-drop']")
author_name = author_element.text

email_elements = driver.find_elements(By.XPATH, ".//a[contains(@class,'email')]")
# Extract the first email element
if email_elements:

email_element = email_elements[0]
email = email_element.get_attribute("href")
data.append({"Title": title ,"Link": href,"Author": author_name, "Email": email })

# to know how much time it took to scrape all pages
print (end_time)

driver.quit()

# saving the data in the csv file
with open('emails.csv', 'w', newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["Title","Author","Link", "Email"])
writer.writeheader()
writer.writerows(data)


Подробнее здесь: https://stackoverflow.com/questions/781 ... h-scraping

Вернуться в «Python»