我正在练习如何从网页上抓取数据。练习的时候,我遇到了很多麻烦。
现在,我正在努力找出下面的错误。
有谁知道如何处理它?</ p>
谢谢!
import requests
r = requests.get("http://finance.naver.com/sise/sise_rise.nhn")
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('a', attrs={'class':'tltle'})
results = soup.find_all('tr')
results2 = results[7:1283]
first_result = results2[0]
first_result
records = []
for result in results:
a = result.contents[1].text
b = result.contents[3].text
c = result.contents[5].text[6:-6]
d = result.contents[7].text[6:-6]
e = result.contents[9].text
f = result.contents[11].text
g = result.contents[13].text
h = result.contents[15].text
i = result.contents[17].text
j = result.contents[19].text
k = result.contents[21].text[6:-6]
l = result.contents[23].text
records.append[(a,b,c,d,e,f,g,h,i,j,k,l)]
IndexError Traceback (most recent call last)
<ipython-input-269-8e1cb3b2bf90> in <module>()
7 e = result.contents[9].text
8 f = result.contents[11].text
----> 9 g = result.contents[13].text
10 h = result.contents[15].text
11 i = result.contents[17].text
IndexError: list index out of range
答案 0 :(得分:1)
您正在假设生成的TR DOM元素中的子元素数量。该页面上有多个表格。您需要将搜索限制为所需的特定表,并知道要编入索引的子项数,或者您可以迭代子项并动态附加它们。您也可以处理IndexError,并忽略错误,但这是不好的做法,您仍然无法确定您在页面上找到的元素。