㈠ python+selenium如何判斷自動登陸是否成功
你這個是登錄後找不到後面的頁面元素,在登錄後加1個休眠時間試一試
㈡ 我想寫一個批量python登錄網站,並且登錄後指定一個網址判斷網頁是否是我想要的東西,把我
我們將會按照以下步驟進行:
提取登錄需要的詳細信息
執行站點登錄
爬取所需要的數據
在本教程中,我使用了以下包(可以在 requirements.txt 中找到):
requests
lxml
步驟一:研究該網站
打開登錄頁面
進入以下頁面 「」。你會看到如下圖所示的頁面(執行注銷,以防你已經登錄)
仔細研究那些我們需要提取的詳細信息,以供登錄之用
在這一部分,我們會創建一個字典來保存執行登錄的詳細信息:
1. 右擊 「Username or email」 欄位,選擇「查看元素」。我們將使用 「name」 屬性為 「username」 的輸入框的值。「username」將會是 key 值,我們的用戶名/電子郵箱就是對應的 value 值(在其他的網站上這些 key 值可能是 「email」,「 user_name」,「 login」,等等)。
2. 右擊 「Password」 欄位,選擇「查看元素」。在腳本中我們需要使用 「name」 屬性為 「password」 的輸入框的值。「password」 將是字典的 key 值,我們輸入的密碼將是對應的 value 值(在其他網站key值可能是 「userpassword」,「loginpassword」,「pwd」,等等)。
3. 在源代碼頁面中,查找一個名為 「csrfmiddlewaretoken」 的隱藏輸入標簽。「csrfmiddlewaretoken」 將是 key 值,而對應的 value 值將是這個隱藏的輸入值(在其他網站上這個 value 值可能是一個名為 「csrftoken」,「 authenticationtoken」 的隱藏輸入值)。列如:「」。
最後我們將會得到一個類似這樣的字典:
payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}
請記住,這是這個網站的一個具體案例。雖然這個登錄表單很簡單,但其他網站可能需要我們檢查瀏覽器的請求日誌,並找到登錄步驟中應該使用的相關的 key 值和 value 值。
步驟2:執行登錄網站
對於這個腳本,我們只需要導入如下內容:
import requests
from lxml import html
首先,我們要創建 session 對象。這個對象會允許我們保存所有的登錄會話請求。
session_requests = requests.session()
第二,我們要從該網頁上提取在登錄時所使用的 csrf 標記。在這個例子中,我們使用的是 lxml 和 xpath 來提取,我們也可以使用正則表達式或者其他的一些方法來提取這些數據。
login_url = ""
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
接下來,我們要執行登錄階段。在這一階段,我們發送一個 POST 請求給登錄的 url。我們使用前面步驟中創建的 payload 作為 data 。也可以為該請求使用一個標題並在該標題中給這個相同的 url 添加一個參照鍵。
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
步驟三:爬取內容
現在,我們已經登錄成功了,我們將從 bitbucket dashboard 頁面上執行真正的爬取操作。
url = ''
result = session_requests.get(
url,
headers = dict(referer = url)
)
為了測試以上內容,我們從 bitbucket dashboard 頁面上爬取了項目列表。我們將再次使用 xpath 來查找目標元素,清除新行中的文本和空格並列印出結果。如果一切都運行 OK,輸出結果應該是你 bitbucket 賬戶中的 buckets / project 列表。
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print bucket_names
你也可以通過檢查從每個請求返回的狀態代碼來驗證這些請求結果。它不會總是能讓你知道登錄階段是否是成功的,但是可以用來作為一個驗證指標。
例如:
result.ok # 會告訴我們最後一次請求是否成功
result.status_code # 會返回給我們最後一次請求的狀態
就是這樣。
㈢ appium 用python腳本在登錄時怎麼獲取點擊登錄按鈕後的界面進行判斷是否登錄成功了呢
其實就是檢查頁面某一固定的元素是否存在。
可以用assert斷言,當然也可以自己寫if語句進行判斷。
assert用得比較多,舉例說明:
例如,登錄成功後的界面,某個固定控制項包含字元串「aaa」,找到,則證明登錄成功。
assertEqual('aaa',driver.find_elements_by_class_name("android.widget.EditText").text)
assertEqual()只是其中一個方法。
斷言的用法還有很多,感興趣可以網路一下。
㈣ 使用python做登陸程序,在資料庫中查找用戶名和密碼是否正確
import MySQLdb
conn=MySQLdb.connect(user='root',passwd='pwd',host='127.0.0.1',db='python_test')
cur=conn.cursor()
cur.execute("select * from users where uid='101' and login='ong'")
##uid 是你的密碼 ;login是你的用戶名
num=0
for data in cur.fetchall():
num=num+1
print data
if(num != 0):
print '登陸成功'
else:
print '用戶名或密碼未找到'
cur.close()
conn.commit()
conn.close()
如果還有其他問題可以再問
㈤ 如何通過Python實現簡單登錄驗證
使用Thrift的多語言編譯功能,將這個IDL文件編譯成C、java、python幾種語言對應的「特定語言介面文件」(每種語言只需要一條簡單的命令即可編譯完成),這樣拿到對應語言的「特定語言介面文件」之後,就可以開發客戶端和伺服器端的代碼了,開發過程中只要介面不變,客戶端和伺服器端的開發可以獨立的進行。
㈥ python實現網頁登陸驗證(自動登錄),試了很多百度上的代碼(雖然才幾行),就是登錄不成功,問題在哪
因為這個頁面的登錄表單是用javascript生成的,
除了userName(注意不是你寫的username), password等欄位外,
你還必須提供很多隱藏欄位的信息(包括codeString, safeFlag, u, isPhone等等)
圖片是登錄表單的源代碼,這里的hidden數據你都要在values里給定,才能正確模擬登錄行為
㈦ python 代碼里如何判斷成功登錄豆瓣
#!py3
#_*_coding:utf-8_*_
importos
importsqlite3
importrequests
fromwin32.
defgetcookiefromchrome(host='.douban.com'):
'''最好還是從瀏覽器自動獲取當前登錄帳號的cookies,
然後再抓取內容,這里是演示從GoogleChrome中獲取cookies的例子。
host登錄伺服器的主域名,注意要在前面加個點號。
'''
cookiepath=os.environ['LOCALAPPDATA']+r""
sql="selecthost_key,name,encrypted_valuefromcookieswherehost_key='%s'"%host
withsqlite3.connect(cookiepath)asconn:
cu=conn.cursor()
cookies={name:CryptUnprotectData(encrypted_value)[1].decode()forhost_key,name,encrypted_valueincu.execute(sql).fetchall()}
print(cookies)
returncookies
url='http://www.douban.com'
httphead={'User-Agent':('Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/66.0.3359.181Safari/537.36'),}
r=requests.get(url,headers=httphead,cookies=getcookiefromchrome('.douban.com'),allow_redirects=1)
print(r.text)
需要安裝的第三方模塊:requests,pywin32
㈧ python程序編寫登錄程序
count = 0
while count<3:
name = input('請輸入賬號:')
password = input('請輸入密碼:')
if not name or not password:
print('賬號密碼不能為空')
right_name = 'admin'
right_password = '123xyz'
if name == right_name:
if password == right_password:
print('歡迎{}登錄'.format(name))
break
else:
print('用戶名密碼錯誤')
else:
print('用戶名密碼錯誤')
count += 1
㈨ 假設登錄密碼為home,如果輸入正確,輸入歡迎光臨,否則輸入密碼錯誤Python代
需求:輸入用戶名,判斷用戶是否被鎖定,鎖定則退出,否則進入密碼驗證,輸入三次錯誤密碼之後此用戶被鎖定。
㈩ 如何用python 寫注冊,登錄功能的測試比如一些本地提示信息判斷和伺服器返回值信
有http的基礎知識嗎?如果沒有的話就不好理解了。
如果有的話參考如下方法:
1、使用Fiddler這個軟體,抓取提給這個頁面的信息,查看所提交的表格包含了那些欄位;
2、使用urllib,urllib2,cookielib這幾個包,模擬瀏覽器提交表單信息。
這里涉及的知識比較多,一時半會也說不完,建議自己學習一下,另外我看你的這個注冊頁面是有驗證碼的,也加大了模擬的難度,請綜合考量一下,謝謝。