Зачем проверять атрибут href дважды?Python

Программы на Python
Ответить
Anonymous
 Зачем проверять атрибут href дважды?

Сообщение Anonymous »

Я нашел следующий код парсинга веб-страниц в книге Парсинг веб-страниц с помощью Python Райана Митчела:

Код: Выделить всё

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
pages = set()
def getLinks(pageUrl):
global pages
html = urlopen("http://en.wikipedia.org"+pageUrl)
bsObj = BeautifulSoup(html)
for link in bsObj.findAll("a", href=re.compile("^(/wiki/)")):
if 'href' in link.attrs:
if link.attrs['href'] not in pages:
#find new page
newPage = link.attrs['href']
print(newPage)
pages.add(newPage)
getLinks(newPage)
getLinks("")
Я считаю, что в цикле for findAll() все объекты тегов с атрибутами href, которые соответствуют критериям, уже были получены. Почему нам все равно нужно потом проверять, имеет ли объект атрибут href?
На мой взгляд, я считаю, что этот код строки следует удалить: если 'href' в link.attrs: Правильно ли я думаю?

Подробнее здесь: https://stackoverflow.com/questions/793 ... bute-twice
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»