https://qn.chenzqi.cn/chenshen/logo.png

Redis代理IP池

:::tip Redis搭建爬虫代理IP池 ::: # -*- coding: utf-8 -*- """ @file: proxy.py @desc: 爬虫IP代理池 @Author: Chenzq @Wechat: 15690833097 @contact: czq181020@gmail.com """ import json import requests import redis import datetime, time from taobao_sale.settings import (REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, PROXY_POOL_COUNT, PROXY_PULL_COUNT, PROXY_URL) class RedisClient(object): def __init__(self, host=REDIS_HOST, port=REDIS_PORT): if REDIS_PASSWORD: self._db = redis.StrictRedis(host=host, port=port, password=REDIS_PASSWORD)

爬取微信公众号文章

步骤 使用 Fiddler 抓取公众号接口数据 使用 Python 脚本获取公众号所有历史文章数据 保存历史文章 Fiddler 抓包 使用微信桌面客户端,打开某个公众号的历史文章,这里以我的公

Scrapy process_item方法写入数据库记录

pipelines.py class MysqlPipeline(): def __init__(self, host, database, user, password, port): self.host = host self.database = database self.user = user self.password = password self.port = port @classmethod def from_crawler(cls, crawler): return cls( host=crawler.settings.get('MYSQL_HOST'), database=crawler.settings.get('MYSQL_DATABASE'), user=crawler.settings.get('MYSQL_USER'), password=crawler.settings.get('MYSQL_PASSWORD'), port=crawler.settings.get('MYSQL_PORT'), ) def open_spider(self, spider): self.db = pymysql.connect(self.host, self.user, self.password, self.database, charset='utf8', port=self.port) self.cursor = self.db.cursor() def close_spider(self, spider): self.db.close() def process_item(self, item, spider): data = dict(item) # data['imgs'] = data['image_paths'][0] # del data['image_paths'] com_id

Flask全局异常处理

:::tip Flask自定义全局响应类 ::: api的设计中, 无论异常还是正常数据均需要服务器以json的格式返回, 为了对异常的统一管理, 同时为了后续更加方

Flask模型序列化

:::tip Flask重写模型序列化 ::: 使用过的序列化方式 在模型定义的时候给序列化的方法 继承 flask 里面的 JSONEncoder类以及default方法 自定义