Я думаю, что неправильно истолковал то, что вы хотели .. .text
даст вам слова внутри тега. <a href="http://url">this is what it would get</a>
.
Если вы хотели получить реальную ссылку, вы были на правильном пути, но ваши элементы были слишком широкими.
Хорошо, уточни это из того, о чем я говорил, в вашем коде было несколько ошибок:
- Вы назвали веб-драйвер
chrome
, а затем снова browser
. Вам нужен только один из них.
- Ваш путь содержит
\
. все пути Windows должны иметь \\
вместо всех обратных косых черт.
Теперь ваш код elems ... вы перечислили много вещей, вы должны получить одну группу элементов в строке и пройти через код страницы с инспектором.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
browser = webdriver.Chrome(
'C:\\Users\\chromedriver.exe',
chrome_options=chrome_options)
browser.get(
"https://www.juniper.net/support/eol/") # <-- Sample Website here
time.sleep(1)
# Get the ul linklist elements, and all the links in them.
# So you can see how you could use this to narrow it down further.
lists = browser.find_elements_by_css_selector("ul.linkList") <-- Sample css_selector for the heading you want to extract from
links = [link.find_elements_by_tag_name("a") for link in lists]
# Now in links we have a list for each column element
# You can use indexing like links[0] to only select one column
for elems in links:
print([link.get_attribute("href") for link in elems])
Чтобы перемещаться по ссылкам, вы должны отправить им драйвер (вы назвали его browser
). Я бы использовал для этого функцию, если она усложняется, вы можете передать browser
в качестве переменной.
tables = []
for elems in links:
tables += [link.get_attribute("href") for link in elems]
for link in tables:
browser.get(link)
table = browser.find_elements_by_tag_name("td")
if table:
table_rows = [t.find_elements_by_tag_name("tr") for t in table]
for table_row in table_rows:
your_result = [t.text for t in table_row if not t.startswith("Pages")]
if your_result:
print(your_result)
browser.close()
browser.quit()
Как только вы начнете повторять процесс .. сначала проверьте страницу. Получите нужные элементы теми же методами.