首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更简单的登录多个站点/页面的方法

更简单的登录多个站点/页面的方法
EN

Stack Overflow用户
提问于 2015-10-23 17:14:20
回答 2查看 33关注 0票数 0

我对我编写代码的方式不是很满意。有没有一种更简单方便的方法来在一个函数中编写代码并返回多个页面的输出。

代码语言:javascript
复制
def login():
        url = "http://192.168.2.45/pricelogin.php"
        r = requests.get(url, auth=('pstats', 'pStats'))
        page = r.text
        return page

def loginhighpricingerror():
        pricingerrorurl = "http://192.168.2.45/airline_error.pl"
        peu = requests.get(pricingerrorurl, auth=('pstats', 'pstats'))
        peupage = peu.text
        return peupage

def loginsuccessfullbookings():
        sucurl = "http://192.168.2.45/airlinessucbookings.php"
        suc = requests.get(sucbookingurl, auth=('pstats', 'pstats'))
        sucpage = suc.text
        return sucpage
EN

回答 2

Stack Overflow用户

发布于 2015-10-23 17:43:45

使用会话而不是无会话模块函数:

代码语言:javascript
复制
s = requests.Session()
s.auth=('pstats', 'pStats')

def login():
        url = "http://192.168.2.45/pricelogin.php"
        r = s.get(url)
        page = r.text
        return page

def loginhighpricingerror():
        pricingerrorurl = "http://192.168.2.45/airline_error.pl"
        peu = s.get(pricingerrorurl)
        peupage = peu.text
        return peupage

def loginsuccessfullbookings():
        sucurl = "http://192.168.2.45/airlinessucbookings.php"
        suc = s.get(sucbookingurl)
        sucpage = suc.text
        return sucpage

当然,这应该被重构,但希望你能明白我的意思。

票数 1
EN

Stack Overflow用户

发布于 2015-10-23 17:23:45

我将泛化登录函数,将url作为参数传递:

代码语言:javascript
复制
def login(url):
   try:
      r = requests.get(url, auth=('pstats', 'pStats'))
   except requests.exceptions.RequestException as e:
      print e
      return '' # but maybe you want to do something else

   page = r.text
   return page

然后,您可以为每个url运行它,将页面累加到一个数组中,例如:

代码语言:javascript
复制
urls = ["http://192.168.2.45/pricelogin.php", "http://192.168.2.45/airline_error.pl", "http://192.168.2.45/airlinessucbookings.php"]

pages = [] # resulting array
for url in urls:
   pages.append(login(url))

注释:我为requests.get添加了一个异常检查,因为当存在连接问题时,这可能会失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33298772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档