现在位置:首页 >
scrapy发送post请求
scrapy发送post请求
龙行 2019-8-28 2141 0评论
有时候我们在执行任务的时候需要发送post请求(比如模拟登陆),那么这时候就需要使用到Request的子类FromRequest来实现,如果想要爬虫在一开始的时候就发送post请求,那么就需要在爬虫类中重写start_requests(self)方法,并且不再抵用start_urls里面的url,如果不重写start_requests(self)那么爬虫会自动获取start_urls里面的url,文笔有限,自己看得懂就行:
实例:
# -*- coding: utf-8 -*- import scrapy from douban.items import DoubanItem import re from urllib import parse class Douban250Spider(scrapy.Spider): name = 'login' allowed_domains = ['renren.com'] start_urls = ['https://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): 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)
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
- 本文网址:https://www.liaotaoo.cn/288.html
- 上篇文章:scrapy设置随机请求头
- 下篇文章:scrapy通过Pipeline讲数据保存成json文件