Div текст не отображается с Selenium Python - PullRequest
1 голос
/ 07 марта 2019

Я собираю веб-браузер для сбора данных о местонахождении магазинов Goodwill на основе списка почтовых индексов. В прошлом я делал это несколько раз для других магазинов, но веб-сайт Goodwill, кажется, немного отличается.div, который я пытаюсь очистить, настроен.

<div class="contact">4300 W 36 1/2 St<br>St Louis Park, MN 55416<br><div 
 class="phone">(952) 922-9640</div><a onclick="ga('send', 'event', 
 'Locator', 'Clicked Location Website Link', 'http://www.seconddebut.org');" 
 class="website" href="http://www.seconddebut.org">Visit Website</a></div>

Из этого div я хочу очистить адрес, город, штат и почтовый индекс. Я пробовал этот код

htmlSource = driver.page_source
soup = BeautifulSoup(htmlSource, 'html.parser')
stores = soup.find("div", attrs={"class":"contact"})
for store in stores:
    print store.get_text()

Я также пробовал это

soup = BeautifulSoup(htmlSource, 'html.parser')
stores = soup.find("div", attrs={"class":"contact"})
children = stores.findChildren("br", recursive=False)
for child in children:
    print child

Ни один из этих вариантов еще не работал для меня. Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Предполагая, что все они следуют одному и тому же шаблону, должно работать что-то вроде следующего:

from bs4 import BeautifulSoup

markup = r"""
<div class="contact">4300 W 36 1/2 St<br>St Louis Park, MN 55416<br><div 
 class="phone">(952) 922-9640</div><a onclick="ga('send', 'event', 
 'Locator', 'Clicked Location Website Link', 'http://www.seconddebut.org');" 
 class="website" href="http://www.seconddebut.org">Visit Website</a></div>
"""

soup = BeautifulSoup(markup, "html.parser")

store = soup.find("div", attrs={"class": "contact"})
print(list(store.strings)[:2])

Результат:

['4300 W 36 1/2 St', 'St Louis Park, MN 55416']
0 голосов
/ 07 марта 2019

Попробуйте селен

 webrdriver.find_element_by_ccs_selector('selector path').text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...