<p>感谢@Tarun Lalwani和一些尝试和错误,结果如下:</p>
<pre class="lang-py prettyprint-override"><code>from scrapy.http import Request, FormRequest
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy.selector import HtmlXPathSelector
from scrapy.http import FormRequest
class LoginSpider(CrawlSpider):
name = 'loginspider'
login_page = 'http://145.100.108.148/login2/login.php'
start_urls = ['http://145.100.108.148/login2/index.php']
username = 'test@hotmail.com'
password = 'test'
def init_request(self):
return Request(url=self.login_page, callback=self.start_requests)
def start_requests(self):
print ("\n start_request is here \n")
yield Request(
url = self.login_page,
callback = self.login,
dont_filter = True
)
def login(self, response):
print ("\n Login is here! \n")
return FormRequest.from_response(response,
formdata={ 'email': self.username,
'pass': self.password},
callback=self.check_login_response)
def check_login_response(self, response):
print ("\n Check_login_response \n")
if b"Learn" in response.body:
print("Worked, logged in")
#return self.parse_item
else:
print("Not logged in")
return
</code></pre>