我想登录rediffmail,但生成错误
exceptions.NameError:全局名称' FormRequest'未定义
这里是我的蜘蛛代码:
import scrapy
from scrapy.selector import HtmlXPathSelector
from scrapy.spider import BaseSpider
from scrapy.http import Request
from rediffmail.items import RediffmailItem
class MySpider(BaseSpider):
name = 'rediffmail'
allowed_domains = ["rediff.com"]
start_urls = ['https://mail.rediff.com/cgi-bin/login.cgi']
def parse(self, response):
return [FormRequest.from_response(response,formdata={'login': 'XXXX', 'passwd': 'XXXX'},callback=self.after_login)]
def after_login(self, response):
# check login succeed before going on
if "authentication failed" in response.body:
self.logger.error("Login failed")
return
请检查我的代码中是否有任何问题。我是python初学者
答案 0 :(得分:3)
您错过了FormRequest
的导入。在您的scrapy版本中,FormRequest
位于scrapy.http
。
在导入部分添加此行:
from scrapy.http import FormRequest