2016-07-03 3 views
1

私はPythonを使用してWebスクレイピングを学んでいます。ここでどのように範囲外のエラーPythonのリストのインデックスを解決するには?

は私の最初のpythonコード

# encoding=utf8 
import urllib2 
from bs4 import BeautifulSoup 


soup = BeautifulSoup(urllib2.urlopen("http://www.bcsfootball.org/").read(),"lxml") 

for row in soup("table", {'class': "mod-data"})[0].tbody("tr"): 
    tds = row('td') 
    print tds[0].string, tds[1].string 

私は取得していますエラー

ある
/usr/bin/python2.7 /home/NewYork/PycharmProjects/untitled/News.py 
Traceback (most recent call last): 
    File "/home/NewYork/PycharmProjects/untitled/News.py", line 8, in <module> 
    for row in soup("table", {'class': "mod-data"})[0].tbody("tr"): 
IndexError: list index out of range 

誰が間違ってやっているものを私を助けることができますか?私がお願いしたい

そしてもう一つは... ...私はここに正確に何が起こっているかを理解するために

for row in soup("table", {'class': "mod-data"})[0].tbody("tr"): 

感謝を助けてください! :)

+1

のPythonを使ってこするウェブ学習はすべてが順調と良いですが、あなたはまた、Pythonのそれ自体を習得する必要があります、またはあなたのようなエラーメッセージにはまりますがこの。これは、 'soup()'呼び出しによって返されたリストが空であったため、最初の要素がないことを意味します。 – TigerhawkT3

+0

スープのスローエラー:UnicodeEncodeError: 'ascii'コーデックは、文字 '\ xa0'を10082の位置にエンコードできません:序数が範囲外(128) – min2bro

+0

ユニコードリテラル..utf-8エンコーディング – min2bro

答えて

0

これはあなたに期待した結果与えるだろう:

import urllib2 
from bs4 import BeautifulSoup 


soup = BeautifulSoup(urllib2.urlopen("http://www.bcsfootball.org").read(),"html") 

welcome = soup("div", {'class': "col-full"})[1] # we know it's index 1 


for item in welcome: 
    print item.string 
1

エラーメッセージは、soup("table", {'class': "mod-data"})は空のリストですが、このリストの最初の要素を取得したいとします。

要素tableに、ノード"mod-data"を使用していることを確認する必要があります。

+0

今そこにはありません...しかし、私はウェブサイトからウェルカムパラグラフを抽出したい場合、上記のコードのタグの表現は何ですか? – Kate

関連する問題