2019 7.14学习笔记

发送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)

模拟登录豆瓣网

 因为教程中的验证码还是字母验证码 而豆瓣网已经更新为滑动验证码 所以不能继续进行了

posted on 2019-07-16 02:03  Joker乔柯  阅读(93)  评论(0编辑  收藏  举报

导航