首页 > 解决方案 > 为什么下载5张图片后这个程序没有失败

问题描述

我最近制作了一个程序,可以下载网站的照片并将它们添加到文件夹中。由于某种原因,当它达到第 5 张照片时,它之后的照片已损坏。

import urlextractor
import time
import sys
n = input('enter id:')


url = urlextractor.id_to_url_conv(n)
maxpage = urlextractor.getLastPage(url)

print(f'This is max page==>{maxpage}')
m = int(input('Sehife sayi:'))
if m < int(maxpage):
        urlextractor.getPhotosFromFirstToN(n, m)
  
else:
        print('You have exceeded max page limit')
        time.sleep(3)
        sys.exit()

这是 main.py

和 urlextractor.py 是:

import requests
from bs4 import BeautifulSoup
import os
import sys
import time
def id_to_url_conv(id):
    return f'http://web2.anl.az:81/read/page.php?bibid={id}&pno=1'

def getLastPage(url):
    req = requests.get(url, 'html.parser')
    num = req.text.find('title="Son vərəq"')
    soup = BeautifulSoup(req.text, 'html.parser')

    x = soup.find(id="last_link")
    z = str(x)
    page_number = ''
    index = z.find('pno')
    for i in range(index+4,len(z)):
        if z[i] != '"':
            page_number += z[i]
        else:
            break
    last_page_number = page_number    

    return int(page_number)
def getPhotosFromFirstToN(id1, number,):
        os.mkdir(directory)
            for i in range(z + 1, number + 1):
                try:
                    fhand = open(f'{directory}/p{i}.png', 'wb')
                    photourl = f'http://web2.anl.az:81/read/img.php?bibid={id1}&pno={i}'
                    url = requests.get(photourl).content
                    fhand.write(url)
                    fhand.close() 
                    print(f'page number {i} has been created {i/number * 100}')
                except:
                    print(f'#{i} error occured')

有我可以解决的问题或更好的程序吗?

标签: pythonhtmlpython-3.x

解决方案


推荐阅读