使用python将图像和文本写入文件

问题描述 投票:0回答:1

我正在尝试使用漂亮的汤从多个URL刮取图像,然后将URL和图像写入文件。文件格式如下:

URL_1的文字

img_1(已显示实际图像)

img_2(实际图像显示)

URL_2的文字

img_1(已显示实际图像)

我的输出文件的前几行现在看起来像:

Company : Firehydrant     URL : https://www.firehydrant.io/âPNG


IHDRLf9ÃŒ∫   pHYsöúYiTXtXML:com.adobe.xmp<?xpacket begin="Ôªø" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164036, 2019/08/13-01:06:57  

...

如何查看实际显示的图像而不是二进制图像的文件?还是有其他方法可以做到这一点? 抱歉,这是一个非常愚蠢的问题!

这是我现在针对1个网站的代码:


with open(file_name, 'wb') as img_file:

    option = webdriver.ChromeOptions()
    option.add_argument(" — incognito")
    browser = webdriver.Chrome(executable_path='./chromedriver', chrome_options=option)

    url = 'https://www.firehydrant.io/'

    browser.get(url)
    timeout = 10
    WebDriverWait(browser, timeout)

    soup = BeautifulSoup(browser.page_source, 'html.parser')
    images = soup.find_all("img")

    found_first_image = False
    for image in images:
        src = image['src']
        if(found_first_image == False): # ADD THE TEXT FOR THE COMPANY/URL
            found_first_image = True
            string = ("URL : " + url).encode('utf-8') 
            img_file.write(string)

        # removing everything after the '?' if there is one in the src tag
        src = urljoin(url, src)
        if("?" in src):
            pos = src.index("?")
            src = src[:pos]
        parsed = urlparse(src)
        if(bool(parsed.netloc) and bool(parsed.scheme)): # download the image and write it to the file
            response = requests.get(src)
            URLFile.write(response.content)
python python-3.x file-writing
1个回答
1
投票

将图像作为图像文件存储在外部,而不是将其作为文本放置在此处。编写图像时,只需保留图像的唯一ID,然后将该唯一ID放在文本文件中即可,而不是图像。为了保存图像,可以使用cv2.imread并使用以下方式生成唯一编号:

import uuid

uuid.uuid1().hex
© www.soinside.com 2019 - 2024. All rights reserved.