发送POST请求:
有时候我们想要在请求数据的时候发送post请求,那么这时候需要使用Request的子类FormRequest来实现,如果想要在爬虫一开始的时候就发送POST请求,那么需要在爬虫类中重写 start_requests(self)方法,并且不再调用start_url。
模拟登录人人网:
1.想要发送POST请求,推荐使用“scrapy.FormRequests”方法,可以方便的指定表单数据
2.如果想在爬虫一开始的时候就发送POST请求,那么应该重写“start_requests”方法。在这个方法中发送post请求。
renren_spider.py
import scrapy class RenrenSpiderSpider(scrapy.Spider): name = 'renren_spider' allowed_domains = ['renren.com'] start_urls = ['http://renren.com/'] def start_requests(self): url="http://www.renren.com/PLogin.do" data={"email":"970138074@qq.com","password":"pythonspider"} request=scrapy.FormRequest(url,formdata=data,callback=self.parse_page) yield request def parse_page(self,response): # with open('renren.html','w',encoding='utf-8')as fp: # fp.write(response.text) request=scrapy.Request(url='http://www.renren.com/880151247/profile',callback=self.parse_profile) yield request def parse_profile(self,response): with open('dp.html','w',encoding='utf-8')as fp: fp.write(response.text)
模拟登录豆瓣网
因为教程中的验证码还是字母验证码 而豆瓣网已经更新为滑动验证码 所以不能继续进行了