Как очистить «арию-лейбл» с помощью robobrowser - PullRequest
0 голосов
/ 05 июня 2019

Я новичок в очистке веб-страниц и в настоящее время использую robobrowser для очистки веб-страницы.Я пытаюсь очистить значение 'aria-label' для определенного класса, но не знаю, как это сделать.

Вот мой код.

from robobrowser import RoboBrowser
browser = RoboBrowser(history=True, parser='html.parser')
browser.open('https://www.scrapingwebsite.com')
links = browser.find_all(class_='searchResult__373c0__1yggB')
for link in links:
    print(link.find(class_='big_braket_class').text)
    problem_part = link.find(class_='subsidiary_class')
    print(problem_part.get('aria-label'))

Это простоне работаетЕсть ли способ заставить его работать?Thx

1 Ответ

0 голосов
/ 06 июня 2019

Вы можете записать содержимое из robobrowser в bs4.Затем с помощью bs4 4.7.1 используйте: имеет и: содержит для целевых требуемых элементов.

from bs4 import BeautifulSoup
#...your code
soup = browser.parsed
data = [(item.select_one('[class*=businessName]').text.replace('\xa0',''), item.select_one('[class*="i-stars"]')['aria-label']) for item in soup.select('li:has(h3:contains("All Results")) ~ li:has([class*=businessName])')]
print(data)

Пример результатов:

enter image description here

...