python - 使用 Mechanize 登录

标签 python cookies beautifulsoup mechanize

我正在尝试从网站中提取一些数据 - 不是很多 - 但足以保证一个小脚本......我正在尝试首先登录该网站 https://squashlevels.com使用 mechanizecookielib,但我失败了...

我现在有

from bs4 import BeautifulSoup
import requests
import re
import urllib2 
import cookielib
import mechanize

cj = cookielib.CookieJar()
br = mechanize.Browser()

br.set_cookiejar(cj)
br.open("https://squashlevels.com/menu_login.php")

# How do I log in?

r = requests.get('https://squashlevels.com/players.php?all&club=1314')
soup = BeautifulSoup(r.content, "html.parser")

## Do stuff...

我应该使用什么代码来登录这个网站?

感谢您的宝贵时间。

最佳答案

这是一个仅使用 requests 的解决方案,我不确定 mechanize 是否会提供任何额外的值(value)。通过使用 requests.Session,您可以维护登录过程返回的 cookie,以便在请求 players.php 时包含在内。

该网站的一个小问题是您还需要发布密码的 MD5 哈希值:

email = 'user@host.com'
password = 'secret'

s = requests.Session()
s.post('https://squashlevels.com/menu_login.php', data={
    'action': 'login',
    'email': email,
    'password': password,
    'md5password': hashlib.md5(password.encode('utf-8')).hexdigest()
})

r = s.get('https://squashlevels.com/players.php?all&club=1314')
soup = BeautifulSoup(r.content, 'html.parser')

for row in soup.select('table.ranking tr'):
    print([col.text.strip() for col in row.select('td')])

输出:

['1', 'Nathan Miller', 'Bluecoat Sports Horsham', 'East England Masters 2018/19', '6', '15 Dec 2018', '4,706', '70%', '']
['2', 'Kit Pearman', 'Dorking', 'Surrey Winter League 2018/19', '2', '20 Nov 2018', '4,469', '64%', '']
['3', 'Simon Millard', 'Bluecoat Sports Horsham', 'Sussex Mens League 2018/2019', '1', '04 Dec 2018', '2,680', '57%', '']
...

关于python - 使用 Mechanize 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53858642/

相关文章:

python - 尝试使用 BeautifulSoup 从 Kayak 网站获取 href URL

java - HttpServlet 响应。有没有办法在不使用 response.setHeader 的情况下使 cookie 安全和/或仅限 http

python - 使用 urllib2 缺少源页面信息

python - conda update -n base -c defaults conda 不会更新到 4.6.x

python - socket.recv(recv_size) 什么时候返回?

angularjs - 从浏览器获取 HTTP cookie

javascript - 使用 Beautiful Soup 从 Google 搜索中提取数据/链接

python - 在没有 Chrome GUI 的情况下抓取 JS 呈现的网站?

python - 在 Python 中使用存储在 JSON 文件中的架构

javascript - Express Js : req. session vs cookie vs 本地存储 vs session 存储