我使用本教程中的以下代码(http://jeriwieringa.com/blog/2012/11/04/beautiful-soup-tutorial-part-1/)。
from bs4 import BeautifulSoup
soup = BeautifulSoup (open("43rd-congress.html"))
final_link = soup.p.a
final_link.decompose()
trs = soup.find_all('tr')
for tr in trs:
for link in tr.find_all('a'):
fulllink = link.get ('href')
print fulllink #print in terminal to verify results
tds = tr.find_all("td")
try: #we are using "try" because the table is not well formatted. This allows the program to continue after encountering an error.
names = str(tds[0].get_text()) # This structure isolate the item by its column in the table and converts it into a string.
years = str(tds[1].get_text())
positions = str(tds[2].get_text())
parties = str(tds[3].get_text())
states = str(tds[4].get_text())
congress = tds[5].get_text()
except:
print "bad tr string"
continue #This tells the computer to move on to the next item after it encounters an error
print names, years, positions, parties, states, congress但是,我在第27行收到一个错误,指出'continue‘没有正确地出现在循环中。我使用的是notepad++和windows powershell。我如何让这段代码工作呢?
发布于 2013-10-21 11:51:08
从print fulllink开始的所有东西都在for循环之外
for tr in trs:
for link in tr.find_all('a'):
fulllink = link.get ('href')
## indented here!!!!!
print fulllink #print in terminal to verify results
tds = tr.find_all("td")
try: #we are using "try" because the table is not well formatted. This allows the program to continue after encountering an error.
names = str(tds[0].get_text()) # This structure isolate the item by its column in the table and converts it into a string.
years = str(tds[1].get_text())
positions = str(tds[2].get_text())
parties = str(tds[3].get_text())
states = str(tds[4].get_text())
congress = tds[5].get_text()
except:
print "bad tr string"
continue #This tells the computer to move on to the next item after it encounters an error
print names, years, positions, parties, states, congresshttps://stackoverflow.com/questions/19485961
复制相似问题