python - 为什么下载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')
有我可以解决的问题或更好的程序吗?
解决方案
推荐阅读
- ios - 在哪里可以找到我需要在移动模拟器上测试的应用程序的 .ipa 文件?
- firebase - 如何在 Flutter Firebase Firestore 中捕获 Client is Offline 错误
- apache-kafka - 错误运行消费者时出现未知错误:org.apache.kafka.common.errors.SerializationException:未知魔术字节
- c++ - 错误是:对“max”的引用不明确
- node.js - 使用 TypeORM 将数据存储为 JSON 对象数组,而不仅仅是 Postgres 中的 JSON 对象
- bash - 如何使用 SSH 客户端在远程主机上运行本地代码?
- powershell - 在 Powershell 中使用 Grep 每分钟报告一次关键字的出现
- rundeck - RunDeck 的输入选项的最大长度是多少?
- postgresql - 更新和替换包含多个引号 postgresql 的字符串
- owl-carousel-2 - Owlcarousel 2 在窗口调整大小时调整大小(已编辑)