簡體   English   中英

機械化不登錄?

[英]Mechanize not logging in?

我對python很陌生,我正在嘗試使用需要登錄的BeautifulSoup抓取網頁。

到目前為止我有

import mechanize
import cookielib
import requests
from bs4 import BeautifulSoup

# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

br.open('URL')

#login form
br.select_form(nr=2)
br['email'] = 'EMAIL'
br['pass'] = 'PASS'
br.submit()

soup = BeautifulSoup(br.response().read(), "lxml")
with open("output1.html", "w") as file:
    file.write(str(soup))

(“URL”“EMAIL”和“PASS”是網站,我的電子郵件和密碼。)

我在 output1.html 中得到的頁面仍然是注銷頁面,而不是您登錄后看到的頁面? 我怎樣才能讓它登錄詳細信息並在登錄后返回頁面上的內容?

為任何幫助干杯!

讓我建議另一種獲取所需頁面的方法。 排除故障可能有點容易。

  1. 首先,您應該手動登錄並打開任何瀏覽器開發人員工具的頁面網絡。 發送登錄憑據后,您將收到一行 POST 請求。 打開請求,右側您將獲得“表單數據”信息。

Chrome 瀏覽器開發者工具截圖

  1. 使用此代碼發送登錄數據並獲得響應:

`

from bs4 import BeautifulSoup
import requests

session = requests.Session()

url = "your url"

req = session.get(url)
soup = BeautifulSoup(req.text, "lxml")

# You can collect some useful data here (like csrf code or some token)

#fill in form data here
params = {'login': 'your login',
          'password': 'your password'}

req = session.post(url)

我希望這段代碼會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM