火车采集器请求过滤插件 pdf转图片插件
- 作者:zhanhy ——来源:原创 ——近期由于项目需要要对火车采集器的规则编写一个插件,需求1:火车采集器请求列表时过滤部分数据,只采集2021年和2020年的数据,其它时间数据不采集。2:文章中的pdf地址自动下载到本地后转成图片,pdf页数过多只转换前5页,并自动提取第一页部分图片区域作为预览图,数据采集完成后,自动发布数据到网站,自动通过ftp上传文件到服务器。
火车采集器请求过滤插件 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)
还没有评论,快来抢沙发吧!