2016-09-23 89 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,每次访问页面时,散列值都应该不一样。 –