• <small id='km0aX'></small><noframes id='km0aX'>

        <bdo id='km0aX'></bdo><ul id='km0aX'></ul>
    1. <legend id='km0aX'><style id='km0aX'><dir id='km0aX'><q id='km0aX'></q></dir></style></legend>
    2. <tfoot id='km0aX'></tfoot>

        <i id='km0aX'><tr id='km0aX'><dt id='km0aX'><q id='km0aX'><span id='km0aX'><b id='km0aX'><form id='km0aX'><ins id='km0aX'></ins><ul id='km0aX'></ul><sub id='km0aX'></sub></form><legend id='km0aX'></legend><bdo id='km0aX'><pre id='km0aX'><center id='km0aX'></center></pre></bdo></b><th id='km0aX'></th></span></q></dt></tr></i><div id='km0aX'><tfoot id='km0aX'></tfoot><dl id='km0aX'><fieldset id='km0aX'></fieldset></dl></div>

      1. 用于使用窗体身份验证绕过警报消息的scrapy

        Scrapy to bypass an alert message with form authentication(用于使用窗体身份验证绕过警报消息的scrapy)

        <small id='w0cI6'></small><noframes id='w0cI6'>

                <i id='w0cI6'><tr id='w0cI6'><dt id='w0cI6'><q id='w0cI6'><span id='w0cI6'><b id='w0cI6'><form id='w0cI6'><ins id='w0cI6'></ins><ul id='w0cI6'></ul><sub id='w0cI6'></sub></form><legend id='w0cI6'></legend><bdo id='w0cI6'><pre id='w0cI6'><center id='w0cI6'></center></pre></bdo></b><th id='w0cI6'></th></span></q></dt></tr></i><div id='w0cI6'><tfoot id='w0cI6'></tfoot><dl id='w0cI6'><fieldset id='w0cI6'></fieldset></dl></div>
                  <bdo id='w0cI6'></bdo><ul id='w0cI6'></ul>
                • <tfoot id='w0cI6'></tfoot>
                    <tbody id='w0cI6'></tbody>
                  <legend id='w0cI6'><style id='w0cI6'><dir id='w0cI6'><q id='w0cI6'></q></dir></style></legend>
                  本文介绍了用于使用窗体身份验证绕过警报消息的scrapy的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  Scrapy是否可以爬网警报消息?

                  链接(例如http://domainhere/admin)加载到实际浏览器后,会显示一条带有表单的警告消息,用于填写用户名和密码。

                  或者是否有办法检查警报消息中的表单,以了解要填写哪些参数?

                  PS:我确实有此网站的凭据,我只想通过Web爬网自动执行流程。

                  谢谢。

                  推荐答案

                  我通过执行以下操作实现了这一点:

                  1. 已观察到在身份验证后需要哪些数据才能继续该页。
                  2. 我在Network选项卡中使用Chrome的开发人员工具检查了请求头。观察到需要授权。
                  3. 为了验证步骤2,我使用了Postman。使用邮递员中的Authorization,Basic Auth类型,填写用户名和密码将为Authorization标头生成相同的值。在发送POST请求之后,它加载了所需的页面并绕过身份验证。
                  4. 如果请求标头下的Authorization具有相同的值,请将该值存储在Screper类中。
                  5. 将scrapy.Request函数与Headers参数一起使用。

                  编码:

                  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)
                  

                  现在,您可以在身份验证过程之后对页面进行爬网。

                  这篇关于用于使用窗体身份验证绕过警报消息的scrapy的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  GUI Freezes while downloading PyQt5 and Pytube(GUI在下载PyQt5和Pytube时冻结)
                  How to solve memory issues while multiprocessing using Pool.map()?(如何解决使用Pool.map()进行多处理时的内存问题?)
                  Python - How to use FastAPI and uvicorn.run without blocking the thread?(Python-如何使用FastAPI和uvicorn.run而不阻塞线程?)
                  How to increment a shared counter from multiple processes?(如何从多个进程递增共享计数器?)
                  Using pika, how to connect to rabbitmq running in docker, started with docker-compose with external network?(使用pika,如何连接运行在docker中的rabbitmq,从docker开始-与外部网络连接?)
                  How to use .rolling() on each row of a Pandas dataframe?(如何对 pandas 数据帧的每一行使用.roll()?)

                          <tbody id='N8YFx'></tbody>
                      1. <small id='N8YFx'></small><noframes id='N8YFx'>

                        <i id='N8YFx'><tr id='N8YFx'><dt id='N8YFx'><q id='N8YFx'><span id='N8YFx'><b id='N8YFx'><form id='N8YFx'><ins id='N8YFx'></ins><ul id='N8YFx'></ul><sub id='N8YFx'></sub></form><legend id='N8YFx'></legend><bdo id='N8YFx'><pre id='N8YFx'><center id='N8YFx'></center></pre></bdo></b><th id='N8YFx'></th></span></q></dt></tr></i><div id='N8YFx'><tfoot id='N8YFx'></tfoot><dl id='N8YFx'><fieldset id='N8YFx'></fieldset></dl></div>
                        <tfoot id='N8YFx'></tfoot>
                      2. <legend id='N8YFx'><style id='N8YFx'><dir id='N8YFx'><q id='N8YFx'></q></dir></style></legend>

                            <bdo id='N8YFx'></bdo><ul id='N8YFx'></ul>