Python之scrapy的post请求、日志和代理
2023-06-13 09:17:02 时间
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
: 将屏幕显示的信息全部记录到文件中,屏幕不再显示,注意文件后缀一定是.logLOG_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
相关文章
- 如何为pycharm配置Python解释器_pycharm选择python解释器
- 手写算法-python代码实现Lasso回归
- python中删除特定字符串
- python的random()函数用法_Python随机函数random用法示例
- Python学习总结之基础语法知识汇总(一)
- 【说站】python保护变量是什么
- 【说站】python random中的随机函数
- 【说站】python strftime获取当前时间
- python调用通达信公式_通达信公式-主力雷达Python化[通俗易懂]
- python上的表白代码_用Python实现表白代码
- Python自动化之Python循环语句
- Python 基础篇 (五)
- Python 命令行cmd指定颜色设置
- 用Python为图片加上文字
- python之代理ip的配置与调试
- Python基础语法-函数-递归函数
- python 抛出自定义错误
- 百度语音识别API的python使用示例详解编程语言
- python scrapy 网络采集使用代理的方法详解编程语言
- Python IO编程——学习笔记详解编程语言
- 学习Python精通SQL Server操作技巧(python操作sqlserver)
- Python break、continue和pass用法详解
- 如何将你的Python项目全面自动化?
- 使用Python连接SQL Server数据库(python连接sqlserver)
- Python流程控制实例代码
- python批量修改文件后缀示例代码分享