我使用Python 3.4,以使該登錄到我的銀行帳戶webscraper,點擊進入每個帳戶中複製的平衡,增加總然後粘貼到谷歌牀單。優化我的蟒蛇銀行webscraper
我得到它的工作,但你可以從代碼中看到,它是重複的,醜陋和長篇大論。
我已經發現了一些問題:
我相信我應該使用循環功能通過不同的賬戶頁面,以獲得平衡,然後在不同的變量分配值。但我想不出一個辦法完成這件事。
轉換字符串浮動似乎凌亂,我所要做的就是讓一個字符串即。通過剝離'$'和','$ 1,000.00浮動到一個浮動,是否有更優雅的方式?
from selenium import webdriver import time import bs4 import gspread from oauth2client.service_account import serviceAccountCredentials driver = webdriver.Chrome() driver.get(bank url) inputElement = driver.find_element_by_id("dUsername") inputElement.send_keys('username') pwdElement = driver.find_element_by_id("password") pwdElement.send_keys('password') driver.find_element_by_id('loginBtn').click() time.sleep(3) #copies saving account balance driver.find_element_by_link_text('Savings').click() time.sleep(3) html = driver.page_source soup = bs4.BeautifulSoup(html) elems=soup.select('#CurrentBalanceAmount') SavingsAcc = float(elems[0].getText().strip('$').replace(',','')) driver.back() #copy cheque balance driver.find_element_by_link_text('cheque').click() time.sleep(3) html = driver.page_source soup = bs4.BeautifulSoup(html) elems=soup.select('#CurrentBalanceAmount') ChequeAcc = float(elems[0].getText().strip('$').replace(',','')) Total = SavingsAcc+ ChequeACC driver.back()
@LeviNoeker這實際上是我從書中學習後的第一個Python代碼,所以我知道的工具是有限的。你能否擴展一點你的觀點? 「if __name__ ==」__main __「是什麼:」do和什麼是可導入的模塊?什麼是明確的等待,它們與睡眠有什麼不同? – fidr
@fidr爲子彈添加了一些附加信息。希望能幫助到你 :-) –