我在写一个小应用程序,包括爬行某些固定网站。在这个例子中,我在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
和{
但是,行html += c.attrs['data-sharetitle']
给了我KeyError: 'data-sharetitle'
。为什么?在
并不是每个带有
river-block
类的li
元素都有data-sharetitle
属性。强制存在所需的属性。替换:有:
^{pr2}$相关问题 更多 >
编程相关推荐