2013-06-26 3 views
0

Я пишу сценарий синтаксического анализа, который должен получать теги «img» на странице HTML (и я использую Beautiful Soup.) Я использую метод findAll для доступа к каждому изображение в коде, но я также хочу получить доступ к дополнительной информации. Я хочу, чтобы название каждого изображения находилось в ближайшем предшествующем теге «a» под атрибутом href. HTML-код выглядит следующим образом:Разбор HTML-страниц с использованием деревьев Beautiful Soup-family

div class="thumbinner" style="width:202px;"><a href="/wiki/File:Edmund-Hillary.web.jpg" class="image">img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Edmund-Hillary.web.jpg/200px-Edmund-Hillary.web.jpg" width="200" height="272" class="thumbimage" srcset="//upload.wikimedia......... 

Я пытаюсь использовать методы родителя/ребенок от красивого супа, но я получаю сообщение об ошибке. Мой код выглядит примерно так:

images= soup.findAll("img", width=true)#access all image tags 
jpegtitles= images.siblings['href'] 

Я фигурировал, так как «IMG» тег и «» тег оба были дети «сНу» метки, то они были бы доступны методом родственного.

Любые предложения о том, как я могу получить доступ: href = "/ wiki/File: Edmund-Hillary.web.jpg" ??

ответ

0

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

>>> soup.find('img', width=True).parent['href'] 
'/wiki/File:Edmund-Hillary.web.jpg' 

Другая проблема с вашим кодом, что findAll возвращает список, и поэтому вы можете» t непосредственно звоните .siblings на нем. Если у вас несколько изображений, используйте цикл.

+0

Но если я хочу, чтобы они были рука об руку? Значение для каждого конкретного тега изображения Я хочу тег «a»? Есть ли способ получить к нему доступ с помощью тега изображения, чтобы они были связаны? – user2521067

+0

@ user2521067 Редактирование моего ответа ... – TerryA

+0

@ user2521067 Хорошо, я отредактировал свой ответ. – TerryA

Смежные вопросы