栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python之scrapy的post请求、日志和代理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python之scrapy的post请求、日志和代理

1. post请求

1、重写start_requests方法:

def start_requests(self) 

2、start_requests的返回值:

scrapy.FormRequest(url=url, headers=headers, callback=self.parse_item, formdata=data) 		
	url: 要发送的post地址 
	headers:可以定制头信息 
	callback: 回调函数 
	formdata: post所携带的数据,这是一个字典
使用
# 创建项目
scrapy startproject scrapy_post
cd scrapy_post/scrapy_post/spiders
scrapy genspider testpost http://fanyi.baidu.com/

testpost.py

import scrapy

import json

class TestpostSpider(scrapy.Spider):
    name = 'testpost'
    allowed_domains = ['fanyi.baidu.com']

    # post请求 如果没有参数 那么这个请求将没有任何意义
    # 所以start_urls 也没有用了
    # parse方法也没有用了
    # start_urls = ['http://fanyi.baidu.com/']
    #
    # def parse(self, response):
    #     pass

    # def parse(self, response):
    #     pass
    def start_requests(self):
        url = 'https://fanyi.baidu.com/sug'

        data = {
            'kw': 'final'
        }

        yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse_second)

    def parse_second(self, response):
        content = response.text
        obj = json.loads(content, encoding='utf-8')

        print(obj)

2. 日志信息和日志等级

日志级别:

  • CRITICAL:严重错误
  • ERROR: 一般错误
  • WARNING: 警告
  • INFO: 一般信息
  • DEBUG: 调试信息

默认的日志等级是DEBUG ,只要出现了DEBUG或者DEBUG以上等级的日志 ,那么这些日志将会打印

settings.py文件设置:

默认的级别为DEBUG,会显示上面所有的信息。在配置文件中 settings.py

  • LOG_FILE : 将屏幕显示的信息全部记录到文件中,屏幕不再显示,注意文件后缀一定是.log
  • LOG_LEVEL: 设置日志显示的等级,就是显示哪些,不显示哪些
3. 代理

1、settings.py中,打开选项

DOWNLOADER_MIDDLEWARES = { 
    'postproject.middlewares.Proxy': 543, 
}

2、middlewares.py中使用代理

def process_request(self, request, spider): 
    request.meta['proxy'] = 'https://113.68.202.10:9999' 
    return None
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号