BeautifulSoup页面爬网时出现键错误

2024-09-23 04:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个小应用程序,包括爬行某些固定网站。在这个例子中,我在TechCrunch上爬行,但是我被困在了一个我真的不应该出现的地方。在

下面是执行爬网的代码部分:

response = urllib.request.urlopen(self.url)
soup = BeautifulSoup(response.read(), "html.parser")

chunks = soup.find_all('li', class_='river-block')
html = 'TechCrunch:'
html += '<ul>'
for c in chunks:
    print(c.attrs.keys())
    print(c.attrs.values())
    html += '<li>'
    html += c.attrs['data-sharetitle']
    html += '<a href="' + c.attrs['data-permalink'] + '">Read more</a>'
    html += '</li>'
    html += '</ul>'

其思想是链接和标题分别存储在data-permalink和{}属性中。现在,两个print语句的输出是我所期望的:

^{pr2}$

但是,行html += c.attrs['data-sharetitle']给了我KeyError: 'data-sharetitle'。为什么?在


Tags: 应用程序data网站responsehtmlliulattrs