我打算从我网站的管理面板中抓取一些数据。
它的工作方式是脚本将在 www.example.com/administration 页面登录,然后继续抓取 {{1的xpath下的所有链接 www.example.com/administration/customers 页面中的。
我的代码:
//tbody
然而,当我尝试运行它时,它并没有真正起作用,并显示“不再显示重复项(请参阅DUPEFILTER_DEBUG以显示所有重复项)”
也许我的规则代码不正确或者还有其他我缺少的东西
答案 0 :(得分:1)
您需要在请求中设置dont_filter=True
以防止它被转储:
return FormRequest.from_response(response,
formdata={'employee[email]': 'xyz@example.com', 'employee[password]': 'xyz'},
formxpath='//form[@id="new_employee"]',
dont_filter=True,
callback=self.after_login)
这是因为您通过将formdata
与username
和password
发送到您已访问过的同一页面来登录。但这一次被DUPEFILTER抛弃了。
注意:您可以在settings.py中添加以下内容,完全禁用此过滤器:
DUPEFILTER_CLASS = 'scrapy.dupefilter.BaseDupeFilter'
这会将过滤器类设置为BaseDupeFilter
,根本不进行过滤。
dont_filter(boolean) - 表示此请求不应该是 由调度程序过滤。当您想要执行时使用此选项 多次相同的请求,忽略重复过滤器。使用 它小心翼翼,否则你会陷入爬行循环。默认为False。