2017-02-22 180 views
-2

我一直在嘗試使用Python請求和BeautifulSoup來嘗試寫一個網頁刮板。我嘗試在網上使用幾種解決方案登錄到該網站,但無法這樣做。無法登錄到網站使用Python

這樣做的一個原因是表單元素不使用傳統方案。網站代碼片段已在下面發佈。任何幫助,將不勝感激。

This image contains the code of the form element

編輯1:我是相當新的這一點,因此一直停留在一個相當元素的一步。我試圖改變我的登錄憑證的關鍵值,但似乎沒有幫助。

My code as of now

+0

也許顯示你已經嘗試過?也許沒有代碼的截圖? –

+0

登錄並獲取生成的COOKIE,並將其用於對該網站的另一個電話 – ZiTAL

+0

該表單中存在隱藏的字段,例如, 'authenticity_token'您可能還需要發送 – mata

回答

-1

你可以有一些原因,這是可以工作。你的代碼也將被讚賞。我想到的第一個原因是它無法工作,這是因爲您需要模擬真實的瀏覽器,例如Google Chrome或Firefox。

事實上,你需要有一個用戶代理。默認情況下,python用戶代理請求不像true user agent

之後您需要捕獲weeb網站的cookie並將其用於登錄。

你有很多解決方案可以做到這一點,我可以解釋兩個當我有使用: - Selenium生成瀏覽器的行爲。 - 使用請求,但使用瀏覽器等所有選項:生成用戶代理並使用cookie(服務器需要認爲您是真正的用戶)。

+0

您能否指點我相關的鏈接學習如何操作? –

+0

您在預覽文章中有2個鏈接(點擊:「真正的用戶代理」,例如用戶代理,或者點擊「Selenium」作爲該文庫的文檔)。如果您想完整解釋[請求](http://docs.python-requests.org/en/master/user/advanced/)(點擊請求鏈接),並且使用比我更好的英語:D – Buky

-1

戴爾,你必須發表你的方法來解決這個問題。

我通過這種方法制成履帶,

response = urlopen(page_url) 
    if 'text/html' in response.getheader('Content-Type'): 
     print("hello 123") 
     html_bytes = response.read() 
     html_string = html_bytes.decode("utf-8") 

,並通過這個html_string給BeautifulSoup。

soup = BeautifulSoup(html_string, 'html.parser') 
html_string = soup.prettify() 

我認爲這使得它更簡單。