Ошибка индекса при запуске Basic Web Scrape на Python - PullRequest
0 голосов
/ 06 сентября 2011

Я использую Python 2.7. Когда я пытаюсь запустить этот код, у меня возникает проблема, когда функция нажимает print findPatTitle [i], и python возвращает «Ошибка индекса: индекс списка вне диапазона». Я беру этот код из 13-го учебника по Python на YouTube, и я почти уверен, что код идентичен, поэтому я не понимаю, почему у меня возникает проблема с диапазоном. Есть идеи?

from urllib import urlopen
from BeautifulSoup import BeautifulSoup
import re

webpage = urlopen('http://feeds.huffingtonpost.com/huffingtonpost/LatestNews').read()

patFinderTitle = re.compile('<title>(.*)<title>')

patFinderLink = re.compile('<link rel.*href="(.*)" />')

findPatTitle = re.findall(patFinderTitle,webpage)
findPatLink = re.findall(patFinderLink,webpage)

listIterator = []
listIterator[:] = range(2,16)

for i in listIterator:
    print findPatTitle[i]
    print findPatLink[i]
    print "\n"

1 Ответ

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

Если вам удалось найти теги заголовка и ссылки, вы получите список подходящих строк при использовании findall. В этом случае вы можете просто просмотреть их и распечатать.

Как:

for title in findPatTitle:
    print title

for link in findPatLink:
    print link

Ошибка индекса, которую вы получаете, заключается в том, что вы пытаетесь получить доступ к списку элементов от 2 до 16, и в заголовках или ссылках нет 16 элементов.

Обратите внимание, listIterator[:] = range(2,16) не очень хороший способ написания кода для этой цели. Вы можете просто использовать

for i in range(2, 16)
    # use i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...