火车采集器请求过滤插件 pdf转图片插件

- 作者:zhanhy ——来源:原创 ——

近期由于项目需要要对火车采集器的规则编写一个插件,需求1:火车采集器请求列表时过滤部分数据,只采集2021年和2020年的数据,其它时间数据不采集。2:文章中的pdf地址自动下载到本地后转成图片,pdf页数过多只转换前5页,并自动提取第一页部分图片区域作为预览图,数据采集完成后,自动发布数据到网站,自动通过ftp上传文件到服务器。

火车采集器请求过滤插件 pdf转图片插件

火车采集器请求过滤插件 pdf转图片插件

以上两个需求没有办法使用火车采集器本来的功能来处理,过滤列表页数据的话,使用内容过滤也要先采集到数据后才可以进行过滤。由于要过滤的数据很多,想要在采集的时候就进行过滤。这两个功能只能使用火车采集器插件来进行处理。经过一番努力后,插件顺利完成,但是通过ftp上传文件功能如果集合在插件中,次数太多。把采集完成后自动上传ftp文件的功能独立出来了,做成了一个exe,可以在采集程序跑完后,运行下这个exe程序即可实现全部的需求。以下是插件的部分代码,如果有需要可以联系站长。


# coding:utf-8
import sys,importlib
from urllib import parse
import json
import time, datetime
import urllib.request
import os
import re
import cv2
import fitz  # fitz就是pip install PyMuPDF


if len(sys.argv)!= 5:
    print(len(sys.argv))
    print("命令行参数长度不为5")
    sys.exit()
else:
    LabelCookie = parse.unquote(sys.argv[1])
    LabelUrl = parse.unquote(sys.argv[2])
    #PageType为List,Content,Pages分别代表列表页,内容页,多页http请求处理,Save代表内容处理
    PageType=sys.argv[3]
    SerializerStr = parse.unquote(sys.argv[4])
    if (SerializerStr[0:2] != '''{"'''):
        file_object = open(SerializerStr)
        try:
            SerializerStr = file_object.read()
            SerializerStr = parse.unquote(SerializerStr)
        finally:
            file_object.close()
    LabelArray = json.loads(SerializerStr)

#以下是用户编写代码区域
    #内容处理开始
    if(PageType=="Save"):
        def pyMuPDF_fitz(down_pdf_name, imagePath, images_name, images_list, images_list_cn):
            dir_date= time.strftime("%Y%m")
            pdfDoc = fitz.open(down_pdf_name)
            for pg in range(pdfDoc.pageCount):
                page = pdfDoc[pg]
                rotate = int(0)
                # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
                # 此处若是不做设置,默认图片大小为:792X612, dpi=96
                zoom_x = 1.33333333  # (1.33333333-->1056x816)   (2-->1584x1224)
                zoom_y = 1.33333333
                mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
                pix = page.getPixmap(matrix=mat, alpha=False)


如果你还有其它疑问可以来本站搜索相关问题,这里会有你想要的答案:火车脚本网

还有什么疑问可以提出来
  • 全部评论(0
    还没有评论,快来抢沙发吧!