为了账号安全,请及时绑定邮箱和手机立即绑定

python异步图像下载(多个网址)

python异步图像下载(多个网址)

温温酱 2021-06-13 17:18:22
我正在学习 Python 4/5 个月,这是我从头开始构建的第三个项目,但我无法自己解决这个问题。此脚本为给定的每个 url 下载 1 个图像。我无法找到有关如何在此脚本中实现线程池执行器或异步的解决方案。我不知道如何将带有图像编号的 url 链接到保存图像部分。我为我需要下载的所有 url 构建了一个 dict,但我如何实际使用正确的名称保存图像?还有什么建议吗?附注。目前出现的网址只是假的。同步版本:    进口请求    导入参数解析    进口重新    导入操作系统    导入日志    从 bs4 导入 BeautifulSoup    解析器 = argparse.ArgumentParser()    parser.add_argument("-n", "--num", help="书号", type=int, required=True)     parser.add_argument("-p", dest=r"path_name", default=r"F:\Users\123", help="保存到目录", )    args = parser.parse_args()    logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',                        级别=日志记录。错误)    logger = logging.getLogger(__name__)      def get_parser(url_c):          url = f'https://test.net/g/{url_c}/1'        logger.info(f'主网址:{url_c}')        responce = requests.get(url, timeout=5) # timeout 将引发异常        如果responce.status_code == 200:            page = requests.get(url, timeout=5).content            汤 = BeautifulSoup(page, 'html.parser')            还汤        别的:            responce.raise_for_status()    def get_locators(soup): # 取 get_parser        # 提取第一页/最后一页编号        first = int(soup.select_one('span.current').string)        logger.info(f'首页:{first}')        last = int(soup.select_one('span.num-pages').string) + 1        # 提取img_code和扩展名        链接 = 汤.find('img', {'class': 'fit-horizontal'}).attrs["src"]        logger.info(f'定位器代码:{link}')        code = re.search('galleries.([0-9]+)\/.\.(\w{3})', link)        book_code = code.group(1) # 内部代码         extension = code.group(2) # png 或 jpg        # 提取目录书名        pattern = re.compile('漂亮":"(.*)"')        找到 = 汤.find('脚本', 文本=模式)        string = pattern.search(found.text).group(1)        dir_name = string.split('"')[0]        logger.info(f'目录名:{dir_name}')        logger.info(f'隐藏代码:{book_code}')        打印(f'扩展名:{扩展名}')        打印(f'总页数:{最后}')        打印(f'')
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号