python - 将 BeautifulSoup 用于 2 因素身份验证背后的页面

标签 python web-scraping beautifulsoup two-factor-authentication

我正在为一个公司项目抓取一些数据,但所有这些都在我公司实现的 2 因素背后。 2 因素身份验证要求我从我的手机/硬件 token 中输入一个持续 6 秒的代码。由于各种原因,无法禁用此 2 因素。

有什么方法可以抓取这些信息吗?如果我现在运行它,BS 只会返回登录页面(在进入 2 因素页面之前我必须在其中输入用户名/密码)。

如果需要,我还可以手动输入 2 因素信息(尽管这必须每 12 小时重复一次,因此不推荐使用此方法)。但是,我什至无法找到成功的原因,因为 BeautifulSoup 没有从预登录的浏览器中读取,并且 2 因素授权代码每 6 秒左右更改一次,每次登录时(需要转到多个不同的页面,所以这基本上与手动将每个页面保存为 html 一样可行。

最佳答案

正如评论者所指出的,这取决于您的网站如何设置和检查登录状态。除了您链接的答案中的方法外,您还应该尝试以下选项:

# using a session, and the cookies argument
s = requests.Session()
r = s.get('https://someurl', cookies={'somecookie': 'somecookievalue'})

# using a session, and http headers
s = requests.Session()
r = s.get('https://someurl', headers={'somekey': 'somevalue'})

在以上两种情况下,cookie都是用python字典表示的键值对。多个 cookie 可以作为多个键/值对传递。在某些情况下,必须直接传递身份验证凭据,如下所示:

s = requests.Session()
s.auth = ('user', 'pass')
s.get('https://someurl')

最后,可能需要其中两个或多个的某种组合。没有您的代码或有关该网站的更多信息,很难说更多。我希望这一切有所帮助。

关于python - 将 BeautifulSoup 用于 2 因素身份验证背后的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61901243/

相关文章:

Python:引用 Pmw RadioSelect 中的单个标签

python - 如何使用 Python 解析 NHL Team Defense 统计数据以创建 Pandas DataFrame?

python - CSS 选择器不解析 Python Webscrape 中的任何内容

python - beautifulSoup 不正确嵌套 <ul> 的屏幕抓取列表

Python Beautiful Soup 只抓取页面的下半部分

python - 将元组列表转换为列表?

python - 你如何启动 Pygame 窗口最大化?

Python3数据帧重组

javascript - 无法在 node.js 控制台上打印 puppeteer 响应

python - 将 url 中的 txt 文件读取到 BeautifulSOUP 中