питон красивый суп экстракт - PullRequest
0 голосов
/ 13 мая 2018

так что я тестирую Красивый суп с питоном (отлично подходит тем, кому интересно)

У меня проблема, когда я хочу получить ссылку по полученной ссылке, и я не понимаю, почему я не могу ее получить.

вот мой код:

for url in soup.find_all('article'):
if "Gonz Logo" in url.get_text():
    if "Black" in url.get_text():
        print(url)

это работает, но дает мне это:

<article><div class="inner-article"><a href="/shop/jackets/gw1diqgyr/n53istanq" style="height:150px;"><img alt="N7qmqyee 3g" height="150" src="//assets.supremenewyork.com/147789/vi/N7qMqyEe_3g.jpg" width="150"/></a><h1><a class="name-link" href="/shop/jackets/gw1diqgyr/n53istanq">Gonz Logo Coaches Jacket </a></h1><p><a class="name-link" href="/shop/jackets/gw1diqgyr/n53istanq">Black</a></p></div></article>

(да, большая линия ...)

проблема в том, что я хочу получить только href. когда я пытаюсь:

    print(url.get('href'))

Я получаю вывод: None

Понятия не имею, почему.

спасибо за ваши ответы!

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Я думаю, что вы получите None из-за soup.find_all('article'). И когда вы делаете url.get('href'), вы не получаете ссылку.

Чтобы получить ссылку, я бы порекомендовал вам получить все a теги с использованием регулярных выражений, например:

links = soup.findAll('a', attrs={'href': re.compile('[a-zA-Z0-9_()]')})
# now iterate over the links and
for link in links:
    # get url
    url = link.get('href')
    print(url)
0 голосов
/ 13 мая 2018

вы можете попробовать это?

for url in soup.find_all('article'):
if "Gonz Logo" in url.get_text():
    if "Black" in url.get_text():
        for child_a in url.find_all('a'):
           print(child_a['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...