Div文本未与Selenium Python一起显示

2024-09-30 16:40:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在整理一个webscraper来收集基于zipcodes列表的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>

我想从这个分区中提取街道地址、城市、州和;邮政编码。我试过这个密码

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

这两种选择对我都不起作用。任何帮助都将不胜感激


Tags: orgbrdivhttpwwwcontactwebsitestores
2条回答

假设它们都遵循相同的模式,下面的方法应该会起作用:

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']

试试硒

 webrdriver.find_element_by_ccs_selector('selector path').text

相关问题 更多 >