我想使用BeautifulSoup來抓取網站。該網站需要登錄。Python ::請求身份驗證
https://www.bahn.de/p/view/meinebahn/login.shtml
研究網絡我明白,一個正確的方式來獲得授權使用requests
。
我的代碼如下:
url = 'https://www.bahn.de/p/view/meinebahn/login.shtml'
header = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5)AppleWebKit 537.36 (KHTML, like Gecko) Chrome","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp ,*/*;q=0.8"}
user = "username"
pwrd = "password"
response = requests.post(url,headers = header, auth=(user, pwrd))
page = requests.get('https://fahrkarten.bahn.de/privatkunde/meinebahn/meine_bahn_portal.go?lang=de&country=DEU#stay')
soup = BeautifulSoup(page.text, 'html.parser')
這並不不幸爲soup
爲HTML文本,說明在其他之中「您登錄我們的系統」工作。雖然response
結果是<Response [200]>
我與auth
有點掙扎,原因有二:
- 是我的身份驗證方法的理解甚至是正確的,即首先發送的登錄信息,然後得到一個訪問網站是「後面」的登錄)還是這樣工作不同?
- 如何找出網站是否需要更特殊的驗證方法?是否有關鍵字在html代碼中查找?
任何幫助,將不勝感激,因爲我真的想了解它,我顯然是「新手」,從手冊中得到正確的結論(如http://docs.python-requests.org/en/master/user/authentication/)
謝謝!有用。我是一個新手,有時會卡住,因爲我缺乏背景知識。所以謝謝你的解釋。這真的有幫助!也許有些愚蠢的問題。我怎麼知道這裏使用了cookies? – FredMaster
那麼,當您使用Chrome/Firefox等現代瀏覽器瀏覽網站時,瀏覽器會自動處理Cookie。 'requests.Session()'提供了一個默認處理cookies的會話(與瀏覽器相似),並且在任何時候都可以使用'session.cookies'來檢出內容。 – Shane
感謝您的幫助! – FredMaster