Python - 认证后阅读网页

时间:2014-09-06 16:03:22

标签: python urllib2 cookielib

首先,对不起我的英语,这不是我的母语。无论如何,一些语法错误不会杀了你:)希望。

由于身份验证系统,我无法从网页获取某些信息。

该网站是:www.matchendirect.fr 这是一个法国网站,没有办法把它变成英文(抱歉给您带来不便) 该网站显示足球比赛信息。

我的目的是获取预测数据(显示在页面中间,有一个显示预测的表格,名为“Pronostics des internautes”,但只有在您登录时才显示此表的内容)

这是我的代码:

import urllib2, cookielib
cookieJar = cookielib.CookieJar()
auth_url="http://www.matchendirect.fr/cgi/ajax/authentification.php?f_contexte=auth_form_action&f_email=pkwpa&f_mot_de_passe=pkw_pa"
url="http://www.matchendirect.fr/live-score/colombie-bresil.html"
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
request = urllib2.Request(auth_url)
response = opener.open(request)
response = opener.open(url)
webpage=response.read()

为了确保登录,我们可以试试这个:

if webpage.find("prono_stat_data")!=-1:
    print("I'm logged in")

我认为我的饼干管理不好......

以下是我的凭据,与他们一起玩,这显然只是为此话题创建的假帐户。

用户名:pkwpa 密码:pkw_pa

希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

这是您要找的内容:http://docs.python-requests.org/en/latest/user/install/#install 使用方式如下:         来自请求导入会话

with session() as c:
    c.get('http://www.matchendirect.fr/cgi/ajax/authentification.php?f_contexte=auth_form_action&f_email=pkwpa&f_mot_de_passe=pkw_pa')
    request = c.get('http://www.matchendirect.fr/live-score/colombie-bresil.html')
    print request.headers
    print request.text

干杯

答案 1 :(得分:0)

尝试将标题添加到开场白。我曾经使用标题

解决了问题
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
opener.open('http://www.example.com/')

添加代码

import urllib2, cookielib
cookieJar = cookielib.CookieJar()
auth_url="http://www.matchendirect.fr/cgi/ajax/authentification.php?   f_contexte=auth_form_action&f_email=pkwpa&f_mot_de_passe=pkw_pa"
url="http://www.matchendirect.fr/live-score/colombie-bresil.html"
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
opener.addheaders.append(('Cookie', 'cookiename=cookievalue'))
request = urllib2.Request(auth_url)
response = opener.open(request)
response = opener.open(url)
webpage=response.read()