Почему это позволяет получить только первый элемент? а как сделать автоматическую прокрутку?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему это позволяет получить только первый элемент? а как сделать автоматическую прокрутку?

Сообщение Anonymous »

Я пытаюсь очистить профиль пользователя linkedin. Итак, он переходит на страницу «Люди» и проходит один за другим, чтобы получить информацию и сохранить ее в базе данных. Если профиль не является общедоступным, он просто перейдет дальше... если профиль общедоступный, он щелкнет по карточке профиля и извлечет информацию на странице профиля. Но когда я печатаю внутри своего «for», он печатает только первый найденный профиль и вообще не выполняет итерацию. Кроме того, я понятия не имею, как выполнить автоматическую прокрутку. Вот код:

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

def run_query():
url = input_field.get()
if(url == '' or not url.startswith("https://www.linkedin.com/company/")):
CTkMessagebox(title="Info", icon="cancel", message="Empty or invalid URL!")
return
driver.get(url)
driver.maximize_window()
driver.implicitly_wait(30)
print(url)
driver.save_screenshot('LINKEDINPAGE.png')

company_title = driver.find_element(By.XPATH, "//div[@class='relative']//p[@class='org-top-card-summary__tagline']").text
print(company_title)

industry = driver.find_element(By.CLASS_NAME, 'org-top-card-summary-info-list__info-item').text
print(industry)

people_url = url + '/people/'

driver.get(people_url)
driver.implicitly_wait(10)
previous_page_height = driver.execute_script("return document.body.scrollHeight")

employees = driver.find_elements(By.XPATH, "//ul[@class='display-flex list-style-none flex-wrap']//li[@class='grid grid__col--lg-8 block org-people-profile-card__profile-card-spacing']")

for employee in employees:
driver.save_screenshot("employees.png")

linkedin_user = employee.find_element(By.XPATH, "//div[@class='org-people-profile-card__profile-info']//div[@class='ember-view lt-line-clamp lt-line-clamp--single-line org-people-profile-card__profile-title t-black']").text
print(linkedin_user)

linkedin_user_position = driver.find_element(By.XPATH, "//div[@class='org-people-profile-card__profile-info']//div[@class='ember-view lt-line-clamp lt-line-clamp--multi-line']").text
print(linkedin_user_position)

if(linkedin_user != "LinkedIn Member"):
employee_card = driver.find_element(By.XPATH, "//div[@class='org-people-profile-card__profile-info']")
employee_link = employee_card.find_element(By.TAG_NAME, 'a').click()
print('entered the profile')
driver.save_screenshot('LINKEDINPROFILE.png')
driver.implicitly_wait(10)

employee_name = driver.find_element(By.CLASS_NAME, "text-heading-xlarge inline t-24 v-align-middle break-words").text
employee_position = driver.find_element(By.CLASS_NAME, "text-body-medium break-words").text

experiences = driver.find_elements(By.XPATH, "//section[@class='artdeco-card pv-profile-card break-words mt2']//ul[@class='bYpMhDbGeHrPlJHJoKkUOYvSmZyJIyEvfrLc']//li[@class='artdeco-list__item MHGhNRxrFEYePDVElXiPzsGcfCtVjWRE UHceesMDBsAFbVbsOghsJALmURLeFDeg']")
first_experience = experiences[0]
first_position_start_date = first_experience.find_element(By.XPATH, "//div[@class='display-flex flex-column full-width align-self-center']//span[@class='t-14 t-normal t-black--light']//span[@class='pvs-entity__caption-wrapper']").text

cur.execute('INSERT INTO tbl_LinkedIn_Company_Employee (Name, Position, StartDate) VALUES (%s, %s, %s)', (employee_name, employee_position, first_position_start_date.split('-')[0]))

print(employee_name)
print(employee_position)
con.commit()

def pagination():
while True:
save_employee()
new_page_height = driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
if new_page_height == previous_page_height:
break
previous_page_height = new_page_height

confirm_button = ctkinter.CTkButton(master=topview, command=run_query, text="OK", fg_color=("#DB3E39", "#821D1A")).place(relx=0.5, relyx=0.5, anchor='c')
Кроме того, мне интересно, что на странице с бесконечной прокруткой я могу просто нажать «показать больше» или продолжать прокручивать до конца, и ПОСЛЕ этого он перейдет к первому элементу цикла. до конца.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему это позволяет получить только первый элемент? а как сделать автоматическую прокрутку?
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как отключить автоматическую прокрутку табулатуры в Android?
    Anonymous » » в форуме Android
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Как отключить автоматическую прокрутку для карусели Bootstrap?
    Anonymous » » в форуме Jquery
    0 Ответы
    138 Просмотры
    Последнее сообщение Anonymous
  • CSS Grid обеспечивает автоматическую прокрутку страницы
    Гость » » в форуме CSS
    0 Ответы
    18 Просмотры
    Последнее сообщение Гость
  • Как включить автоматическую вертикальную прокрутку карт вверх одну карту за другой [закрыто]
    Anonymous » » в форуме CSS
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous

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