В файле работает только первая итерация, и она не переходит ко второй итерации и не переходит к значению первой итерации на листе. Я не понимаю, почему он не переходит на вторую страницу.
на самом деле, когда он переходит по первой ссылке, он возвращается на главную страницу, а не переходит на вторую итерацию, потому что блоки - это отложенная загрузка
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from bs4 import BeautifulSoup
import requests
import urllib
import time
import pandas
import re
driver_service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=driver_service)
driver.get("https://acma-automechanika-newdelhi.in.messefrankfurt.com/newdelhi/en/exhibitor-search.html")
# paste url that you want to scrape
wait = WebDriverWait(driver, 10)
# Close popup if present
try:
close_button = driver.execute_script("arguments[0].click()", button)
close_button.click()
except:
pass
# List to store data
siteData = []
# Loop over exhibitors
for i in range(1, 400):
try:
# Wait for the exhibitor container to be present
listing = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'ex-exhibitor-search-results')))
# Find all exhibitor links within the container
# Find all exhibitor links within the container
lists = listing.find_elements(By.XPATH, '//div[@class="ex-exhibitor-search-results"]/div/div/div/div/div[' + str(i) + ']/a[contains(@class, "a-link--no-focus")]')
#it go to the first anchor link and click the link and append all the entries in the sheet and back to return the main page and after that it not to the another anchor link
except:
break
for listss in lists:
listss.click()
time.sleep(20)
try:
driver.execute_script("arguments[0].click()", button)
except:
pass
try:
name = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-name').text
except:
pass
try:
street = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-street').text
except:
pass
try:
zip = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-zip').text
except:
pass
try:
city = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-city').text
except:
pass
try:
number = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-tel-number').text
except:
pass
try:
fax = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-fax-number').text
except:
pass
try:
contact = driver.find_element(By.CLASS_NAME, 'ex-contact-box__contact-btn').get_attribute('href')
except:
pass
try:
website = driver.find_element(By.CLASS_NAME, 'icon.icon-news-before.ex-contact-box__website-link').get_attribute('href')
except:
pass
time.sleep(2)
driver.switch_to.window(driver.window_handles[0])
driver.back()
siteData.append({"name":name, "address":street, "address1":zip, "address2":city, "Phone":number, "Fax":fax, "Website":website})
df = pandas.DataFrame(siteData)
df.to_csv("C:/Users/User/Documents/acma12.csv")
driver.quit()
После извлечения информации об экспоненте скрипт переключается обратно в главное окно (если открыто несколько окон) и возвращается на предыдущую страницу, чтобы продолжить цикл. цикл «но» не продолжается
В файле работает только первая итерация, и она не переходит ко второй итерации и не переходит к значению первой итерации на листе. Я не понимаю, почему он не переходит на вторую страницу. на самом деле, когда он переходит по первой ссылке, он возвращается на главную страницу, а не переходит на вторую итерацию, потому что блоки - это отложенная загрузка [code]
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException, NoSuchElementException from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service from selenium.common.exceptions import StaleElementReferenceException from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains from bs4 import BeautifulSoup import requests import urllib import time import pandas import re driver_service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=driver_service)
driver.get("https://acma-automechanika-newdelhi.in.messefrankfurt.com/newdelhi/en/exhibitor-search.html") # paste url that you want to scrape
wait = WebDriverWait(driver, 10)
# Close popup if present try: close_button = driver.execute_script("arguments[0].click()", button) close_button.click() except: pass
# List to store data siteData = []
# Loop over exhibitors for i in range(1, 400): try: # Wait for the exhibitor container to be present listing = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'ex-exhibitor-search-results')))
# Find all exhibitor links within the container # Find all exhibitor links within the container
lists = listing.find_elements(By.XPATH, '//div[@class="ex-exhibitor-search-results"]/div/div/div/div/div[' + str(i) + ']/a[contains(@class, "a-link--no-focus")]') #it go to the first anchor link and click the link and append all the entries in the sheet and back to return the main page and after that it not to the another anchor link except: break
for listss in lists: listss.click() time.sleep(20) try: driver.execute_script("arguments[0].click()", button) except: pass try: name = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-name').text
except: pass try: street = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-street').text
except: pass
try: zip = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-zip').text
except: pass
try: city = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-city').text except: pass
try: number = driver.find_element(By.CLASS_NAME,'ex-contact-box__address-field-tel-number').text except: pass
После извлечения информации об экспоненте скрипт переключается обратно в главное окно (если открыто несколько окон) и возвращается на предыдущую страницу, чтобы продолжить цикл. цикл «но» не продолжается
Я пытаюсь настроить простую систему подписки по электронной почте, используя скрипт Google Apps и электронную таблицу Google. Идея состоит в том, что пользователи вводят свой адрес электронной почты в форму на моем веб-сайте, и письмо отправляется с...
Я пытаюсь создать API для управления данными из базы данных MySQL с помощью Entity Code-First.
У меня есть класс Category, который может иметь несколько подкатегорий и только одну. родитель. Я уже проводил подобные занятия, но впервые использую...
Я пытаюсь создать API для управления данными из базы данных MySQL с использованием Entity Code-First.
У меня есть класс Category, который может иметь несколько подкатегорий и только одну родитель. Я уже проводил подобные занятия, но впервые...
I am using phpoffice\Phpspreadsheet and when I upload Excel it shows me error Top Sheet!E102 -> Top Sheet!E15 -> Table Table7 for Structured Reference cannot be located
I am using phpoffice\Phpspreadsheet and when I upload Excel it shows me error Top Sheet!E102 -> Top Sheet!E15 -> Table Table7 for Structured Reference cannot be located