2017-02-22 44 views
0

Это пример из книги python. Когда я запускаю его, я не получаю никакого вывода. Кто-нибудь может мне помочь? Благодаря!!!Почему код python2.7 не имеет никакого выхода?

from urllib import urlopen 
from BeautifulSoup import BeautifulSoup 

text = urlopen('https://python.org/community/jobs').read() 
soup = BeautifulSoup(text) 

jobs = set() 
for header in soup('h3'): 
    links = header('a', 'reference') 
    if not links: continue 
    link = links[0] 
    jobs.add('%s (%s)' % (link.string, link['href'])) 
    print jobs.add('%s (%s)' % (link.string, link['href'])) 

print '\n'.join(sorted(jobs, key=lambda s: s.lower())) 

reedit-- во-первых, я только считается URL неправильно, но игнорировать HTML Infomation Я хочу, чтобы не было существовать. Возможно, поэтому я получаю пустой вывод.

+0

Догадка, я бы сказал, что либо 'суп (h3)' пуст, либо 'links' всегда пуст. Не могли бы вы обновить этот вопрос с помощью такого текста, который вы ожидаете получить от своей строки 'urlopen'? – ymbirtt

ответ

1

Если вы открываете страницу и просматриваете html, вы заметите, что нет тегов <h3>, содержащих ссылки. Вот почему у вас нет выхода.

Так что if not links: continue всегда продолжается.

Возможно, это связано с тем, что страница переместилась на https://www.python.org/jobs/, поэтому теги <h3>, содержащие ссылки на странице, больше не представлены.

Если вы указали URL этого кода на новую страницу. Я бы предложил использовать некоторое время, чтобы ознакомиться с источником страницы. Например, он использует <h2> вместо <h3> тегов для своих ссылок.