我一直收到缩进错误,我不应该这样
I keep receiving an indentation error and I shouldn't be
每当我在 CMD 中 运行 我的程序时,我都会收到缩进错误。对我来说,整个程序的缩进看起来很完美,所以我完全不知道为什么会收到错误。
命令错误:
scraper9.py", line 50
browser.get(url2)
^
IndentationError: unexpected unindent
我已经完全删除了所有缩进并逐行重新缩进以到达当前迭代,但我仍然出错。
进口os
导入系统
导入 csv
从 bs4 导入 BeautifulSoup
导入 urllib2
导入 xlsxwriter
从硒导入 webdriver
reload(sys)
sys.setdefaultencoding("utf8")
key_stats_on_main = ["Market Cap", "PE Ratio (TTM)"]
key_stats_on_stat = ["Enterprise Value", "Trailing P/E"]
stocks_arr =[]
pfolio_file = open("tickers.csv", "r")
for line in pfolio_file:
indv_stock_arr = line.strip().split(",")
stocks_arr.append(indv_stock_arr)
print(stocks_arr)
browser = webdriver.PhantomJS()
stock_info_arr = []
for stock in stocks_arr:
stock_info = []
ticker = stock[0]
stock_info.append(ticker)
url="https://finance.yahoo.com/quote/{0}?p={0}".format(ticker)
url2="https://finance.yahoo.com/quote/{0}/key-statistics?p={0}".format(ticker)
browser.get(url)
innerHTML = browser.execute_script("return document.body.innerHTML")
soup = BeautifulSoup(innerHTML, "html.parser")
for stat in key_stats_on_main:
page_stat1 = soup.find(text = stat)
try:
page_row1 = page_stat1.find_parent("tr")
try:
page_statnum1 = page_row1.find_all("span")[1].contents[1]
except:
page_statnum1 = page_row1.find_all("td")[1].contents[0]
except:
print("Invalid parent for this element")
page_statnum1 = "N/A"
stock_info.append(page_statnum1)
browser.get(url2)
innerHTML2 = browser.execute_script("return document.body.innerHTML2")
soup2 = BeautifulSoup(innerHTML2, "html.parser")
for stat in key_stats_on_stat:
page_stat2 = soup2.find(text=stat)
try:
page_row2 = page_stat2.find_parent("tr")
try:
page_statnum2 = page_row2.find_all("span")[1].contents[0]
except:
page_statnum2 = page_row2.find_all("td")[1].content[0]
except:
print("Invalid pareent for this element")
page_statnum2 = "N/A"
stock_info.append(page_statnum2)
stock_info_arr.append(stock_info)
print(stock_info_arr)
key_stats_on_main.extend(key_stats_on_stat)
workbook = xlsxwriter.Workbook("Stocks01.xlsx")
worksheet = workbook.add_worksheet()
row = 0
col = 2
for stat in key_stats_on_main:
worksheet.write(row, col, stat)
col +=1
row = 1
col = 0
for our_stock in stock_info_arr:
col = 0
for info_bit in our_stock:
worksheet.write(row, col, info_bit)
col += 1
row += 1
workbook.close()
print("Script completed")
我希望代码能够在没有 Ineation 错误的情况下执行。
出错了。我好长ost.
您的 try:
缺少 except:
或 finally:
。
for stat in key_stats_on_main:
page_stat1 = soup.find(text = stat)
try: # <--------------- this one here
page_row1 = page_stat1.find_parent("tr")
try:
page_statnum1 = page_row1.find_all("span")[1].contents[1]
except:
page_statnum1 = page_row1.find_all("td")[1].contents[0]
except:
print("Invalid parent for this element")
page_statnum1 = "N/A"
stock_info.append(page_statnum1)
# <---------------- needs something here
browser.get(url2)
您的意思可能是第二个 except:
位于第一个 try:
:
的缩进级别
for stat in key_stats_on_main:
page_stat1 = soup.find(text = stat)
try: # <--------------- this one here
page_row1 = page_stat1.find_parent("tr")
try:
page_statnum1 = page_row1.find_all("span")[1].contents[1]
except:
page_statnum1 = page_row1.find_all("td")[1].contents[0]
except:
print("Invalid parent for this element")
page_statnum1 = "N/A"
stock_info.append(page_statnum1)
browser.get(url2)
试试吧!
顺便说一句,您应该减少 try:
子句中的代码大小,并只捕获您正在处理的异常。在您的情况下,AttributeError
(如果 .contents
失败)将被第一个 except:
捕获。更好:
try:
found = page_row1.find_all("span")
index = 1
except XError: # should be the one .find_all() can raise
found = page_row1.find_all("td")
index = 0
page_statnum1 = found[1].contents[index]
外层也有类似的东西 try
/except
。
这样你就不会掩盖你从未打算处理的其他异常。如果你做那个伪装,你将很难找出问题所在,所以避免它。
每当我在 CMD 中 运行 我的程序时,我都会收到缩进错误。对我来说,整个程序的缩进看起来很完美,所以我完全不知道为什么会收到错误。
命令错误:
scraper9.py", line 50
browser.get(url2)
^
IndentationError: unexpected unindent
我已经完全删除了所有缩进并逐行重新缩进以到达当前迭代,但我仍然出错。
进口os 导入系统 导入 csv 从 bs4 导入 BeautifulSoup 导入 urllib2 导入 xlsxwriter 从硒导入 webdriver
reload(sys)
sys.setdefaultencoding("utf8")
key_stats_on_main = ["Market Cap", "PE Ratio (TTM)"]
key_stats_on_stat = ["Enterprise Value", "Trailing P/E"]
stocks_arr =[]
pfolio_file = open("tickers.csv", "r")
for line in pfolio_file:
indv_stock_arr = line.strip().split(",")
stocks_arr.append(indv_stock_arr)
print(stocks_arr)
browser = webdriver.PhantomJS()
stock_info_arr = []
for stock in stocks_arr:
stock_info = []
ticker = stock[0]
stock_info.append(ticker)
url="https://finance.yahoo.com/quote/{0}?p={0}".format(ticker)
url2="https://finance.yahoo.com/quote/{0}/key-statistics?p={0}".format(ticker)
browser.get(url)
innerHTML = browser.execute_script("return document.body.innerHTML")
soup = BeautifulSoup(innerHTML, "html.parser")
for stat in key_stats_on_main:
page_stat1 = soup.find(text = stat)
try:
page_row1 = page_stat1.find_parent("tr")
try:
page_statnum1 = page_row1.find_all("span")[1].contents[1]
except:
page_statnum1 = page_row1.find_all("td")[1].contents[0]
except:
print("Invalid parent for this element")
page_statnum1 = "N/A"
stock_info.append(page_statnum1)
browser.get(url2)
innerHTML2 = browser.execute_script("return document.body.innerHTML2")
soup2 = BeautifulSoup(innerHTML2, "html.parser")
for stat in key_stats_on_stat:
page_stat2 = soup2.find(text=stat)
try:
page_row2 = page_stat2.find_parent("tr")
try:
page_statnum2 = page_row2.find_all("span")[1].contents[0]
except:
page_statnum2 = page_row2.find_all("td")[1].content[0]
except:
print("Invalid pareent for this element")
page_statnum2 = "N/A"
stock_info.append(page_statnum2)
stock_info_arr.append(stock_info)
print(stock_info_arr)
key_stats_on_main.extend(key_stats_on_stat)
workbook = xlsxwriter.Workbook("Stocks01.xlsx")
worksheet = workbook.add_worksheet()
row = 0
col = 2
for stat in key_stats_on_main:
worksheet.write(row, col, stat)
col +=1
row = 1
col = 0
for our_stock in stock_info_arr:
col = 0
for info_bit in our_stock:
worksheet.write(row, col, info_bit)
col += 1
row += 1
workbook.close()
print("Script completed")
我希望代码能够在没有 Ineation 错误的情况下执行。
出错了。我好长ost.
您的 try:
缺少 except:
或 finally:
。
for stat in key_stats_on_main:
page_stat1 = soup.find(text = stat)
try: # <--------------- this one here
page_row1 = page_stat1.find_parent("tr")
try:
page_statnum1 = page_row1.find_all("span")[1].contents[1]
except:
page_statnum1 = page_row1.find_all("td")[1].contents[0]
except:
print("Invalid parent for this element")
page_statnum1 = "N/A"
stock_info.append(page_statnum1)
# <---------------- needs something here
browser.get(url2)
您的意思可能是第二个 except:
位于第一个 try:
:
for stat in key_stats_on_main:
page_stat1 = soup.find(text = stat)
try: # <--------------- this one here
page_row1 = page_stat1.find_parent("tr")
try:
page_statnum1 = page_row1.find_all("span")[1].contents[1]
except:
page_statnum1 = page_row1.find_all("td")[1].contents[0]
except:
print("Invalid parent for this element")
page_statnum1 = "N/A"
stock_info.append(page_statnum1)
browser.get(url2)
试试吧!
顺便说一句,您应该减少 try:
子句中的代码大小,并只捕获您正在处理的异常。在您的情况下,AttributeError
(如果 .contents
失败)将被第一个 except:
捕获。更好:
try:
found = page_row1.find_all("span")
index = 1
except XError: # should be the one .find_all() can raise
found = page_row1.find_all("td")
index = 0
page_statnum1 = found[1].contents[index]
外层也有类似的东西 try
/except
。
这样你就不会掩盖你从未打算处理的其他异常。如果你做那个伪装,你将很难找出问题所在,所以避免它。