Closed limu520 closed 2 years ago
代码中出现的问题是,程序没有办法判断输入的内容为文件url还是文件流,导致所有的查询都是在判断为url的情况下进行查询,这也就导致了程序只能查询url图片。 在我借助作者大大所建立的类事,我发现,此类依旧可用:
import requests import json import sys import re from typing import Any, Dict, List, Optional class BaiDuItem: def __init__(self, data: Dict[str, Any]): self.origin: Dict[str, Any] = data # 原始数据 self.page_title: str = data["fromPageTitle"] # 页面标题 self.title: str = data["title"][0] # 标题 self.abstract: str = data["abstract"] # 说明文字 self.image_src: str = data["image_src"] # 图片地址 self.url: str = data["url"] # 图片所在网页地址 self.img_list: List[str] = data.get("imgList", []) # 其他图片地址列表 class BaiDuResponse: def __init__(self, resp_text: str, resp_url: str): self.url: str = resp_url # 搜索结果地址 self.similar: List[Dict[str, Any]] = [] # 相似结果返回值 self.raw: List[BaiDuItem] = [] # 来源结果返回值 # 原始数据 self.origin: List[Dict[str, Any]] = json.loads( re.search(r"cardData = (.+);window\.commonData", resp_text)[1] # type: ignore ) self.same: Optional[Dict[str, Any]] = {} for i in self.origin: setattr(self, i["cardName"], i) if self.same: self.raw = [BaiDuItem(x) for x in self.same["tplData"]["list"]] info = self.same["extData"]["showInfo"] del info["other_info"] for y in info: for z in info[y]: try: self.similar[info[y].index(z)][y] = z except IndexError: self.similar.append({y: z}) self.item: List[str] = [ attr for attr in dir(self) if not callable(getattr(self, attr)) and not attr.startswith(("__", "origin", "raw", "same", "url")) ] baidu_url = "https://graph.baidu.com:443/upload?tn=pc&from=pc&image_source=PC_UPLOAD_IMAGE_FILE&" request_file = { "image":('2.jpg',open(r'2.jpg','rb')) } aa = requests.post(baidu_url, files=request_file) ## 获取百度搜图解析网站 bb = json.loads(str(aa.text)) url = bb['data']['url'] cc = requests.post(url) dd = BaiDuResponse(cc.text,url) print(dd.similar)
希望对作者的改进有帮助
代码中出现的问题是,程序没有办法判断输入的内容为文件url还是文件流,导致所有的查询都是在判断为url的情况下进行查询,这也就导致了程序只能查询url图片。
呃,我不知道为什么会得出这个结论,我用 demo_baidu.py 测试过。
已收到
代码中出现的问题是,程序没有办法判断输入的内容为文件url还是文件流,导致所有的查询都是在判断为url的情况下进行查询,这也就导致了程序只能查询url图片。 在我借助作者大大所建立的类事,我发现,此类依旧可用:
希望对作者的改进有帮助