1

我一直在嘗試使用python requests模塊在網頁上抓取網站,並且需要登錄到站點以檢索我想要的數據。我環顧四周,但不知道爲什麼它不工作。這是我到目前爲止的代碼:Python Web抓取請求自動登錄不工作

import requests 
import bs4 as bs 

login_url = "__withheld__" 
target_url = "__withheld__" 

login_data = { "username": "my_username", "password": "my_password"} 

with requests.Session() as s: 
    page = s.get(login_url) 
    page_login = s.post(login_url, data = login_data) 
    page = s.get(target_url) 
    final_page = bs.BeautifulSoup(page.content, 'lxml') 
    print(final_page.title) 

這是密碼箱的HTML:

<input name="username" type="text" id="username" class="metro-input" placeholder="Username" value=""> 
<span id="username-error" class=""></span> 
<label class="ie789Only"> Password</label> 
<input name="password" type="password" id="password" class="metro-input" placeholder="Password"> 
<input type="submit" name="button1" value="Sign in" id="button1" class="metro-button"> 

我認爲這可能與網站做要求用戶點擊按鈕,雖然我可能找不到解決方案。當我登錄自己的時候,我也嘗試在開發者控制檯中尋找任何表單,但沒有找到概述密碼/用戶名的明確形式。任何幫助表示讚賞。

更新 這裏是鏈接到由同一家公司(隱私)具有相同的安全功能運行一個網站,如果這是任何幫助:https://ashwood-vic.compass.education/login.aspx?sessionstate=disabled

+0

你能發佈一個鏈接到網站?可能更容易知道你需要做什麼來完成這項工作 – emporerblk

+0

這不是實際的鏈接(由於隱私),但是由完全相同的公司運行並具有完全相同的安全性https://ashwood-vic.compass .education/login.aspx?sessionstate = disabled –

回答

0

你可以試試這個下面的代碼,一旦

import requests 
import bs4 as bs 
username = 'username of the site' 
password = 'password of the site' 

req = requests.get(login_url, auth=(username, password)) 
final_page = bs.BeautifulSoup(req.content, 'lxml') 
print(final_page.title) 

- 請參考這http://docs.python-requests.org/en/master/user/authentication/#basic-authentication

+0

不幸的是,他沒有工作,雖然我已經做了更多的挖掘網站的HTML代碼,並發現該網站可能使用OAuth身份驗證,雖然我不知道如何處理那 –

+0

請問你能分享一下你試過的鏈接嗎? –

+0

鏈接在描述中 –