From 594e10b6904d1f499677f3bdbde33eb5ad2b872a Mon Sep 17 00:00:00 2001 From: ngfchl Date: Sat, 24 Sep 2022 15:27:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96U2=E9=80=9A=E8=BF=87=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=86=85=E5=AE=B9=E6=A3=80=E6=B5=8B=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=B7=B2=E7=AD=BE=E5=88=B0=E5=B9=B6=E8=87=AA=E5=8A=A8=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pt_site/UtilityTool.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pt_site/UtilityTool.py b/pt_site/UtilityTool.py index 834b459..85bc39c 100644 --- a/pt_site/UtilityTool.py +++ b/pt_site/UtilityTool.py @@ -1,3 +1,4 @@ +import contextlib import json import logging import random @@ -5,11 +6,13 @@ import re import threading import time from datetime import datetime +from urllib.request import urlopen import aip import cloudscraper import dateutil.parser import opencc +import requests from django.db.models import QuerySet from lxml import etree from pypushdeer import PushDeer @@ -372,6 +375,23 @@ class PtSpider: msg=site.name + (' 信息导入成功!' if result[1] else ' 信息更新成功! ') + passkey_msg ) + @staticmethod + def download_img(image_url): + """ + 下载图片并转为二进制流 + :param image_url: + :return: + """ + if image_url.startswith('http'): + r = requests.get(image_url, timeout=5) + img_data = r.content + elif image_url.startswith('ftp'): + with contextlib.closing(urlopen(image_url, None, 10)) as r: + img_data = r.read() + else: + return False + return img_data + def sign_in_u2(self, my_site: MySite): site = my_site.site try: @@ -380,6 +400,9 @@ class PtSpider: my_site=my_site, url=url, ) + sign_str = ''.join(self.parse(result, '//a[@href="showup.php"]')) + if '已签到' in converter.convert(sign_str): + return CommonResponse.success(msg=site.name + '已签到,请勿重复操作!!') req = self.parse(result, '//form//td/input[@name="req"]/@value') hash_str = self.parse(result, '//form//td/input[@name="hash"]/@value') form = self.parse(result, '//form//td/input[@name="form"]/@value')