Python 如何调试scrapy登录表单请求

Python 如何调试scrapy登录表单请求,python,login,scrapy,Python,Login,Scrapy,我正在尝试使用scrapy登录网页。然而,它似乎不工作,但我无法正确地调试它,因为我无法通过scrapy看到正在发生的事情。这是我到目前为止得到的代码: # -*- coding: utf-8 -*- import scrapy class WordGetterSpider(scrapy.Spider): name = "word_getter" #allowed_domains = ["germanpod101.com"] start_urls = (

我正在尝试使用scrapy登录网页。然而,它似乎不工作,但我无法正确地调试它,因为我无法通过scrapy看到正在发生的事情。这是我到目前为止得到的代码:

# -*- coding: utf-8 -*-
import scrapy


class WordGetterSpider(scrapy.Spider):
    name = "word_getter"
    #allowed_domains = ["germanpod101.com"]
    start_urls = (
        'http://www.example.com/member/login_new.php',
    )

    def parse(self, response):        
      return scrapy.FormRequest.from_response(response, formdata={'amember_login': 'my username', 'amember_password': 'my password'}, callback=self.parse_index)

    def parse_index(self, response):
      print response.body
      print response.xpath('//title/text()').extract()
打印的正文包含登录表单,很明显我没有登录。如果我试图访问其他需要登录的页面,我会被重定向回登录页面

有没有人对我如何调试这个或者如何让登录工作有什么好的建议

我已将此项添加到我的设置中:

COOKIES_ENABLED = True
COOKIES_DEBUG = True

使用浏览器中的调试器或/和数据包检查器等工具调试登录过程。一旦您了解了登录过程的实际工作原理,您应该能够在scrapyIt’s中实现。您可能需要发送额外的标题,或者您可能遗漏了一些必需的
formdata
字段。尝试将普通浏览器发送的内容完全复制到代码中。我建议您使用来尝试不同的请求和参数。正如@marven所建议的,检查浏览器的开发工具“网络”选项卡以检查实际发送的内容,并在
formdata
中复制此内容(有时,字段值由Javascript添加)