2016-09-23 20 views
0

我試圖抓取我的erp(SobrusPharma),我嘗試了很多python 3.5的模塊並且沒有任何工作,如果只有某人可以給我登錄部分的解決方案,至於抓取部分完成。 登錄網址是:使用Python 3.5登錄到SobrusPharma

https://sobruspharma.com/auth/login

而且抓取具有以下結構的網頁:

https://sobruspharma.com/product/63301/table(數量的變化,這就是動態部分

預先感謝您,我已經嘗試了以下模塊:

import requests 
import urllib.request 
import mechanicalSoup 

這裏需要幫助, 非常感謝!

回答

1

這是很簡單的,你需要分析的是哈希從形式:

id="connex_form" 
          class=" login_form">         
<input type="hidden" name="hash" value="e60f5fef37fe07b0b516d71666071316" id="hash">  

,你可以用BS4找到並上傳剩餘的數據:

post = "https://sobruspharma.com/auth/login" 
form_data = {"hash": "", 
      "email": "[email protected]", 
      "password": "foo", 
      "remember_me": "0", 
      "submit": "To log in"} 

from bs4 import BeautifulSoup 
from requests import Session 

with Session() as s: 
    soup = BeautifulSoup(s.get("https://sobruspharma.com/auth/login").content) 
    hash_ = soup.select_one("#hash")["value"] 
    form_data["hash"] = hash_ 
    login = s.post(post, data=form_data) 
+0

所以哈希因瀏覽器而異!哦,上帝,那就是問題了,哈希在所有會話中都不一樣? –

+0

謝謝Padraic坎寧安!很好的幫助! –

+0

@NabilBennani,每次訪問頁面時,散列值都應該不一樣。 –