Python:自动化网站帐户登录和提取每次登录尝试信息的最佳方法?
我想知道是否有人可以推荐在Python 3.5中执行此操作的最佳过程: 我有250套用户名和密码 我必须为每个帐户登录一个特定的网站(大约250次),并获取他们的帐户信息 我见过一些例子,但通常只有一次登录尝试。但是对于多次登录又如何呢Python:自动化网站帐户登录和提取每次登录尝试信息的最佳方法?,python,selenium,automation,screen-scraping,Python,Selenium,Automation,Screen Scraping,我想知道是否有人可以推荐在Python 3.5中执行此操作的最佳过程: 我有250套用户名和密码 我必须为每个帐户登录一个特定的网站(大约250次),并获取他们的帐户信息 我见过一些例子,但通常只有一次登录尝试。但是对于多次登录又如何呢 import requests import pandas as pd from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import
import requests
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
# read accounts information from spreadsheet
data = pd.read_csv("HWIN Accounts.csv")
data.dropna()
# Parameters to be called
url = 'https://www.hwin.ca/hwin/login.jsp'
USERNAME = data['Username']
PASSWORD = data['Password']
data = []
data2 = []
# Find Outstanding Payments Due on Payment Tab
def find_payment(html):
soup = BeautifulSoup(html)
table = soup.find("td", {"class": "success"}, text=True)
data2.append(table.text)
# Find Account Status
def find_account_status(htmls):
soup = BeautifulSoup(htmls)
table = soup.find('table', border="0", cellpadding="2")
table_body = table.find('tbody')
rows = table_body.find_all('tr')
for row in rows:
cols = row.find_all('td')
cols = [ele.text.strip() for ele in cols]
data.append([ele for ele in cols if ele])
# Sign into HWIN looping through each individual account
for i in range(len(USERNAME)):
browser = webdriver.Firefox()
browser.get(url)
# Input Login information into form
username = browser.find_element_by_name("userName")
username.send_keys(USERNAME[i])
password = browser.find_element_by_name("password")
password.send_keys(PASSWORD[i])
form = browser.find_element_by_name("imageField")
form.submit()
# Navigate to Account Status Tab
browser.find_element_by_link_text("Account status").click()
# Extract Account Status Tab
htmls = browser.page_source
find_account_status(htmls)
# Navigate to Payments Tab
browser.find_element_by_name("payments").click()
# Extract Payment data
html = browser.page_source
find_payment(html)
# Close Browser
browser.quit()
print(data)
print(data2)
为循环一次怎么样?除了为循环一次
,您的脚本应该在每次迭代中正确登录、刮取数据,然后注销。很有可能会有一个可以编写脚本的UI元素。是否有一个特定的问题让你绞尽脑汁,或者你无法让它工作?您在提取用户名和密码数据时遇到问题吗?您在注销时遇到问题吗?你的for循环超时了吗?所以我编写了一些代码,并在我的原始帖子中发布了它。我感到困惑的部分是如何区分不同帐户之间的输出。