以下は、私がBSE Webサイトをスクレイプするために使用するコードです。細かいことを除いて、すべて正常に動作します。内側(2番目)のforループは反復せず、実行は終了します。 助けが役に立ちます。Python Selenium inner forループは反復しません
browser=webdriver.Chrome()
browser.get('http://www.bseindia.com/markets/keystatics/Keystat_index.aspx')
for i in range(1,48):
browser.find_element_by_xpath("//*[@id='ctl00_ContentPlaceHolder1_ddltype']/option["+str(i)+"]").click()
browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder1_btnSubmit"]').click()
data = []
for j in range(2,21):
browser.find_element_by_xpath("//*[@id='ctl00_ContentPlaceHolder1_gvReport_ctl"+str(j).zfill(2)+"_Linkbtn']").click()
for tr in browser.find_elements_by_xpath('//*[@id="ctl00_ContentPlaceHolder1_gvYearwise"]'):
ths = tr.find_elements_by_tag_name('th')
tds = tr.find_elements_by_tag_name('td')
if ths:
data.append([th.text for th in ths])
if tds:
data.append([td.text for td in tds])
f.write(str(data) + "\n")
たぶん 'browser.find_elements_by_xpath( '// * [ID @ = "ctl00_ContentPlaceHolder1_gvYearwiseは"]')'空のリストを返しますか? – suit
@suit no、結果として最初の反復リストを取得しています。 – Ted
は 'ctl00_ContentPlaceHolder1_gvReport'あなたが掻きたいテーブルですか? – skrubber