Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中运行基本Web Scrape时出现索引错误_Python_Beautifulsoup_Web Scraping - Fatal编程技术网

在Python中运行基本Web Scrape时出现索引错误

在Python中运行基本Web Scrape时出现索引错误,python,beautifulsoup,web-scraping,Python,Beautifulsoup,Web Scraping,我正在使用Python 2.7。当我试图运行这段代码时,当函数点击printfindpattitle[I]时,我遇到了一个问题,python返回索引错误:列表索引超出范围。我从youtube上的第13篇python教程中获取了这段代码,我很确定代码是相同的,所以我不明白为什么会出现范围问题。有什么想法吗 from urllib import urlopen from BeautifulSoup import BeautifulSoup import re webpage = urlopen('

我正在使用Python 2.7。当我试图运行这段代码时,当函数点击printfindpattitle[I]时,我遇到了一个问题,python返回索引错误:列表索引超出范围。我从youtube上的第13篇python教程中获取了这段代码,我很确定代码是相同的,所以我不明白为什么会出现范围问题。有什么想法吗

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"

如果您的正则表达式设法找到了标题和链接标记,那么在使用findall时,您将得到一个匹配字符串的列表。在这种情况下,您可以遍历它们并打印出来

比如:

您得到的索引错误是因为您试图访问从2到16的元素列表,而标题或链接中都没有16个元素

注意,listIterator[:]=range2,16不是为此编写代码的好方法。你可以用

for i in range(2, 16)
    # use i

谢谢你的提示。我的代码有问题,FindPattile应该是。*。很抱歉。当您使用BeautifulSoup时,为什么要使用正则表达式来解析html?o、 你不应该用正则表达式解析html。。。
for i in range(2, 16)
    # use i