0

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

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

网址是: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")

我觉得我的 cookie 管理不太好...

这是我的凭据,请与他们一起玩,这显然是仅为该主题创建的虚假帐户。

用户名:pkwpa 密码:pkw_pa

希望有人可以帮助我。

4

2 回答 2

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

干杯

于 2014-09-21T15:19:18.290 回答
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()
于 2014-09-25T08:42:58.833 回答