Python:使用mechanicalsoup登录网站

2024-06-14 23:57:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手。我想用python编写一个脚本,运行数千个url并保存响应。为了访问这些URL,需要凭据。所以,我已经编写了一个基本的脚本,它可以转到URL并打印响应。当我浏览多个URL时,网站返回多个用户登录的错误。所以,我想登录一次,并运行在同一登录会话中的其他网址。我能用机械汤做吗。你知道吗

这是我的剧本:

import mechanicalsoup

browser = mechanicalsoup.StatefulBrowser()
browser.open("mywebsite1")

browser.select_form('form[action="/login"]')
browser.get_current_form().print_summary()
browser["userId"] = "myusername"
browser["password"] = "mypassword"

response = browser.submit_selected()
browser.launch_browser()
print(response.text)
browser.open("mywebsite2")
print(response.text)
...... so on for all the URLs

如何保存会话?提前谢谢你的帮助


Tags: text用户browserform脚本url网站response
1条回答
网友
1楼 · 发布于 2024-06-14 23:57:15

只需保存并加载session.cookies

def save_cookies(browser):
    return browser.session.cookies.get_dict()

def load_cookies(browser, cookies):
    from requests.utils import cookiejar_from_dict
    browser.session.cookies = cookiejar_from_dict(cookies)

browser = mechanicalsoup.StatefulBrowser()
browser.open("www.google.com")

cookies = save_cookies(browser)
load_cookies(browser, cookies)

相关问题 更多 >