Scrapy是否可以抓取警报消息?
链接例如,http://域名/admin http://domainhere/admin,一旦加载到实际的浏览器中,就会出现一条带有表单的警报消息,以填写用户名和密码。
或者有没有办法检查警报消息中的表单以了解要填写哪些参数?
PS:我确实有这个网站的凭据,我只是想通过网络爬行来自动化流程。
Thanks.
为了实现这一目标,我所做的是通过执行以下操作:
- 观察身份验证后需要哪些数据才能继续该页面。
- 我使用 Chrome 的“网络”选项卡中的开发人员工具检查了请求标头。经观察,需要授权。
- 为了验证步骤 #2,我使用了 Postman。使用Postman中的Authorization,Basic Auth类型,填写用户名和密码将为Authorization标头生成相同的值。发送POST请求后,它加载所需的页面并绕过身份验证。
- 请求标头下的授权具有相同的值,将该值存储在 Scraper 类中。
- 使用带有 headers 参数的 scrapy.Request 函数。
Code:
import scrapy
class TestScraper(scrapy.Spider):
handle_httpstatus_list = [401]
name = "Test"
allowed_domains = ["xxx.xx.xx"]
start_urls = ["http://testdomain/test"]
auth = "Basic [Key Here]"
def parse(self, response):
return scrapy.Request(
"http://testdomain/test",
headers={'Authorization': self.auth},
callback=self.after_login
)
def after_login(self, response):
self.log(response.body)
现在,您可以在身份验证过程后抓取页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)