原諒業餘代碼,我敢肯定,看看有經驗的人是痛苦的。相同的HTML代碼讀取不同使用python
我想寫一些代碼,能夠保存所有數據從以下鏈接: http://pq.gov.mt/pqweb.nsf/bysitting?openview,並將它們保存在一個易於搜索的CSV文件。
我寫的代碼似乎工作正常,因爲它設法將我需要的所有信息保存在csv文件的不同列中。但是,當它達到一個問題時,它會全部崩潰,412頁:http://pq.gov.mt/PQWeb.nsf/bysitting!OpenView&Start=1&Count=20&Expand=9#9,由於某種原因,它無法註冊最後一個條目(標有箭頭< < < < < < -----)。
據我所知,頁面的html與其餘的完全相同,這似乎工作正常,所以我不能真正瞭解如何或爲什麼它是不同的。
不知道我已經解釋了我的問題,但如果有必要,我會很樂意詳細說明。
在此先感謝。下面
for item in html_search_1:
x = item.find_all('a',href = True)
for t in x:
store = []
y = t.get('href')
new_url = ("http://pq.gov.mt"+y)
page_2 = urllib.request.urlopen(new_url).read()
soup_2 = BeautifulSoup(page_2, 'html.parser')
html_search_3 = soup_2.find_all("div", class_ = "col-md-10")
for ccc in html_search_3:
html_search_4 = ccc.find_all("div", class_ = "row")
for haga in html_search_4:
z = haga.find_all("div", class_ = ["col-md-2","col-md-4","col-md-12","col-md-10"])
for new_item in z:
store.append(new_item.text)
var0 = 1
var1 = 3
var2 = 5
var3 = 7
var4 = 9
var5 = 13
var6 = 14
var7 = 15
var8 = 17
count = 1
for o in range(1):
try:
legislature.append(store[var0])
category.append(store[var1])
question_number.append(store[var2])
date.append(store[var3])
sitting.append(store[var4])
title.append(store[var5])
MPs.append(store[var6])
question.append(store[var7])
print(store[var7])
answer.append(store[var8])
print(store[var8]) #<<<<<<<<<<<<<<<<<<<<--------------------
var0 = var0 + 19
var1 = var1 + 19
var2 = var2 + 19
var3 = var3 + 19
var4 = var4 + 19
var5 = var5 + 19
var6 = var6 + 19
var7 = var7 + 19
var8 = var8 + 19
except:
pass
您每次通過'for t in x'循環設置'store = []''。所以它只包含'x'中最後一項的值。 – Barmar
也許有一個例外:你可以'而不是'傳遞'來看看會發生什麼? – sal