Вот решение, использующее просто requests
, я не уверен, что mechanize
предоставит какое-либо дополнительное значение.Используя 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%', '']
...