selenium выполняет поиск элемента по одному специальному классу, ссылка href

#selenium-webdriver #web-scraping #web-crawler #scapy

#selenium-webdriver #очистка веб-страниц #веб-сканер #scapy

Вопрос:

Я пытаюсь получить какую-то ссылку для веб-сайта https://web.archive.org/web /*/https://cd.lianjia.com /, я хочу получить ссылку для каждой даты,

 import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait

path = 'C:Windowschromedriver.exe'
driver = webdriver.Chrome(path)
driver.implicitly_wait(10)
driver.get('https://web.archive.org/web/*/https://cd.lianjia.com/ ')


element =driver.find_element_by_xpath('/html/body/div[4]/div[3]/div/div[2]/span[21]')
actions = ActionChains(driver)
actions.move_to_element(element).click().perform()
  

Поскольку у него есть данные за несколько лет, поэтому я попробовал это для определенного года, 2016, теперь я пытаюсь получить ссылку href для каждой даты,

   day = driver.find_elements_by_css_selector("div.calendar-day")
for a in day:
    print(a.text)
  

Но он возвращает только число в течение нескольких дней

       3
5
6
7
27
6
14
25
26
28
7
8
21
27
1
9
25
15
19
21
4
17
21
27
13
29
15
19
20
26
2
4
  

Затем я попробовал этот код, чтобы найти ссылку

 date = driver.find_elements_by_css_selector("a[href* = 'web']")
date = driver.find_elements_by_css_selector("a[href* = 'lianjia']")
  

но он не может найти ссылку, может кто-нибудь помочь мне с этим, я остановился здесь на пять дней

Ответ №1:

Вы подходите правильно. но потребуется несколько настроек. Вам нужно будет напрямую настроить таргетинг на элементы и использовать метод атрибута get для извлечения hrefs.

 days = driver.find_elements_by_css_selector("div.calendar-day > a")
for day in days:
    print(day.get_attribute('href'))
  

вывод:

 https://web.archive.org/web/20160103/https://cd.lianjia.com/
https://web.archive.org/web/20160105/https://cd.lianjia.com/
https://web.archive.org/web/20160106/https://cd.lianjia.com/
https://web.archive.org/web/20160107/https://cd.lianjia.com/
https://web.archive.org/web/20160127/https://cd.lianjia.com/
https://web.archive.org/web/20160306/https://cd.lianjia.com/
https://web.archive.org/web/20160314/https://cd.lianjia.com/
https://web.archive.org/web/20160325/https://cd.lianjia.com/
https://web.archive.org/web/20160326/https://cd.lianjia.com/
https://web.archive.org/web/20160328/https://cd.lianjia.com/
https://web.archive.org/web/20160407/https://cd.lianjia.com/
https://web.archive.org/web/20160408/https://cd.lianjia.com/
https://web.archive.org/web/20160421/https://cd.lianjia.com/
https://web.archive.org/web/20160427/https://cd.lianjia.com/
https://web.archive.org/web/20160501/https://cd.lianjia.com/
https://web.archive.org/web/20160509/https://cd.lianjia.com/
https://web.archive.org/web/20160525/https://cd.lianjia.com/
https://web.archive.org/web/20160615/https://cd.lianjia.com/
https://web.archive.org/web/20160619/https://cd.lianjia.com/
https://web.archive.org/web/20160621/https://cd.lianjia.com/
https://web.archive.org/web/20160704/https://cd.lianjia.com/
https://web.archive.org/web/20160717/https://cd.lianjia.com/
https://web.archive.org/web/20160721/https://cd.lianjia.com/
https://web.archive.org/web/20160927/https://cd.lianjia.com/
https://web.archive.org/web/20161013/https://cd.lianjia.com/
https://web.archive.org/web/20161029/https://cd.lianjia.com/
https://web.archive.org/web/20161115/https://cd.lianjia.com/
https://web.archive.org/web/20161119/https://cd.lianjia.com/
https://web.archive.org/web/20161120/https://cd.lianjia.com/
https://web.archive.org/web/20161126/https://cd.lianjia.com/
https://web.archive.org/web/20161202/https://cd.lianjia.com/
https://web.archive.org/web/20161204/https://cd.lianjia.com/
  

Комментарии:

1. о, очень красивый, очень хороший человек, большое спасибо, я потерял себя здесь на несколько дней