首页 > 解决方案 > 使用弹出登录窗口进行网页抓取

问题描述

我正在尝试从 url 中抓取信息,登录是一个弹出窗口,我使用了下面的代码,但它不起作用。

import requests

data = {
    'username': 'email',
    'hash': 'password',
    'form_id': 'login_form',
    'op': 'login <button class="btn btn-lg btn-blue" type="submit"></button>',
}
url = 'https://www.canstar.com.au/'
r = requests.post(url, data=data)
print(r.text)

print(r.text) 的结果如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /</pre>
</body>
</html>

我打印出登录表单,截图如下: 在此处输入图像描述

当登录是这样的弹出窗口时,抓取信息的正确方法是什么?

标签: pythonweb-scraping

解决方案


解决您的问题的最佳方法是使用Selenium库关闭任何弹出窗口或使用用户名和密码登录。用这样的一行代码:

driver.find_element_by_xpath('Xpath address').click()

推荐阅读