При добавлении элементов в список в Python он работает с первой ссылкой и добавляет данные на лист после этого, не работPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 При добавлении элементов в список в Python он работает с первой ссылкой и добавляет данные на лист после этого, не работ

Сообщение Anonymous »

В файле работает только первая итерация, и она не переходит ко второй итерации и не переходит к значению первой итерации на листе. Я не понимаю, почему он не переходит на вторую страницу.
на самом деле, когда он переходит по первой ссылке, он возвращается на главную страницу, а не переходит на вторую итерацию, потому что блоки - это отложенная загрузка

Код: Выделить всё


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()
После извлечения информации об экспоненте скрипт переключается обратно в главное окно (если открыто несколько окон) и возвращается на предыдущую страницу, чтобы продолжить цикл. цикл «но» не продолжается


Подробнее здесь: https://stackoverflow.com/questions/783 ... nk-and-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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