【发布时间】:2018-10-11 00:24:42
【问题描述】:
这演示了如何登录网站。它非常脆弱但 目标是演示如何处理表单、提交表单以及 使用会话来维护跨页面读取的 cookie 这个程序假设你已经完成了研究并且你知道什么 您需要填写的字段。
import sys
import requests
import lxml
import getpass
from bs4 import BeautifulSoup
sys.path.append("../lib")
from agentsGalore import agentsGalore
from formHelper import formHelper
开始一个会话 会话 = 请求。会话() ag = agentGalore()
def openURL(url,cookie=None):
global session
global ag
headers = ag.makeHeader("MacFirefox58","default","default","langUS")
try:
if cookie:
r = session.get(url, cookies=cookie, headers=headers)
else:
r = session.get(url, headers=headers)
except requests.exceptions.RequestException as e:
print(e)
exit(1)
return r
此函数使用哈希中的参数对 URL 进行 POST def postURL(网址,参数): 全球股份公司 全球会议 headers = ag.makeHeader("MacFirefox58","default","default","langUS") 尝试: r = session.post(url, data=params) 除了 requests.exceptions.RequestException 为 e: 打印(e) 退出(1)
return r
首先,打开登录页面
url = 'https://my.wlc.edu/ICS/'
resp = openURL(url)
fh = formHelper(resp.text)
得到一个填充的参数结构。您可以调用 fh.analyzeInputs() 来 查看所有输入字段是什么。
params = fh.populateFormInputs(fh.getFormById('MAINFORM'))
userid = getpass.getpass("enter your userid:",sys.stderr)
password = getpass.getpass("enter your password:",sys.stderr)
params['userName'] = userid
params['password'] = password
formurl = 'https://my.wlc.edu/ICS/'
res = postURL(formurl,params)
【问题讨论】:
标签: python beautifulsoup