разбирать HTML-теги на основе класса и тега href, используя красивый суп - PullRequest
2 голосов
/ 23 сентября 2011

Я пытаюсь разобрать HTML с BeautifulSoup.

Содержание, которое я хочу, выглядит следующим образом:

<a class="yil-biz-ttl" id="yil_biz_ttl-2" href="http://some-web-url/" title="some title">Title</a> 

Я попытался получить следующую ошибку:

maxx = soup.findAll("href", {"class: "yil-biz-ttl"})
------------------------------------------------------------
   File "<ipython console>", line 1
     maxx = soup.findAll("href", {"class: "yil-biz-ttl"})
                                             ^
SyntaxError: invalid syntax

Что я хочу, это строка: http://some-web-url/

Ответы [ 4 ]

3 голосов
/ 23 сентября 2011

Вам не хватает закрывающей кавычки после "class:

 maxx = soup.findAll("href", {"class: "yil-biz-ttl"})

также должно быть

 maxx = soup.findAll("href", {"class": "yil-biz-ttl"})

, я не думаю, что вы можете искать такой атрибут какhref вот так, я думаю, вам нужно искать тег:

 maxx = [link['href'] for link in soup.findAll("a", {"class": "yil-biz-ttl"})]
2 голосов
/ 23 сентября 2011
soup.findAll('a', {'class': 'yil-biz-ttl'})[0]['href']

Чтобы найти все такие ссылки:

for link in soup.findAll('a', {'class': 'yil-biz-ttl'}):
    try:
        print link['href']
    except KeyError:
        pass
1 голос
/ 24 сентября 2011

Чтобы найти все <a/> элементы из класса CSS "yil-biz-ttl", которые имеют атрибут href, в котором есть что-либо:

from bs4 import BeautifulSoup  # $ pip install beautifulsoup4

soup = BeautifulSoup(HTML)
for link in soup("a", "yil-biz-ttl", href=True):
    print(link['href'])

На данный момент все остальные ответы не удовлетворяют вышеуказанным требованиям.

0 голосов
/ 23 сентября 2011

Ну, во-первых, у вас есть синтаксическая ошибка. У вас неверные цитаты в class части.

Попробуйте:

maxx = soup.findAll("href", {"class": "yil-biz-ttl"})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...