Python / Selenium - как l oop через hrefs в <li>? - PullRequest
1 голос
/ 15 апреля 2020

Веб-URL: https://www.ipsos.com/en-us/knowledge/society/covid19-research-in-uncertain-times

Привет, ребята, я хочу проанализировать HTML, как показано ниже:

enter image description here

Я хочу получить все ссылки внутри элементов

и выделенного текста. Я попробовал код
elementList = driver.find_element_by_class_name('block-wysiwyg').find_elements_by_tag_name("li")
for i in range(len(elementList)):
    driver.find_element_by_class_name('blcokwysiwyg').find_elements_by_tag_name("li").get_attribute("href")

Но блок не вернул ни одного.

Может кто-нибудь помочь мне с вышеуказанным кодом? Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

Я полагаю, что вы получите нужный контент.

import requests
from bs4 import BeautifulSoup

link = 'https://www.ipsos.com/en-us/knowledge/society/covid19-research-in-uncertain-times'

r = requests.get(link)
soup = BeautifulSoup(r.text,"html.parser")
for item in soup.select(".block-wysiwyg li"):
    item_text = item.get_text(strip=True)
    item_link = item.select_one("a[href]").get("href")
    print(item_text,item_link)
1 голос
/ 16 апреля 2020

Попробуйте вот так:

coronas = driver.find_element_by_xpath("//div[@class='block-wysiwyg']/ul/li")
hr = coronas.find_element_by_xpath('./a')
print(coronas.text)
print(hr.get_attribute('href'))

Вывод:

The coronavirus is touching the lives of all Americans, but race, age, and income play a big role in the exact ways the virus — and the stalled economy — are affecting people. Here's what that means.
https://www.ipsos.com/en-us/america-under-coronavirus
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...