我正在學(xué)習(xí) Python 4/5 個(gè)月,這是我從頭開始構(gòu)建的第三個(gè)項(xiàng)目,但我無(wú)法自己解決這個(gè)問題。此腳本為給定的每個(gè) url 下載 1 個(gè)圖像。我無(wú)法找到有關(guān)如何在此腳本中實(shí)現(xiàn)線程池執(zhí)行器或異步的解決方案。我不知道如何將帶有圖像編號(hào)的 url 鏈接到保存圖像部分。我為我需要下載的所有 url 構(gòu)建了一個(gè) dict,但我如何實(shí)際使用正確的名稱保存圖像?還有什么建議嗎?附注。目前出現(xiàn)的網(wǎng)址只是假的。同步版本: 進(jìn)口請(qǐng)求 導(dǎo)入?yún)?shù)解析 進(jìn)口重新 導(dǎo)入操作系統(tǒng) 導(dǎo)入日志 從 bs4 導(dǎo)入 BeautifulSoup 解析器 = argparse.ArgumentParser() parser.add_argument("-n", "--num", help="書號(hào)", 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', 級(jí)別=日志記錄。錯(cuò)誤) logger = logging.getLogger(__name__) def get_parser(url_c): url = f'https://test.net/g/{url_c}/1' logger.info(f'主網(wǎng)址:{url_c}') responce = requests.get(url, timeout=5) # timeout 將引發(fā)異常 如果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 # 提取第一頁(yè)/最后一頁(yè)編號(hào) first = int(soup.select_one('span.current').string) logger.info(f'首頁(yè):{first}') last = int(soup.select_one('span.num-pages').string) + 1 # 提取img_code和擴(kuò)展名 鏈接 = 湯.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) # 內(nèi)部代碼 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}') 打?。╢'擴(kuò)展名:{擴(kuò)展名}') 打?。╢'總頁(yè)數(shù):{最后}') 打印(f'')
添加回答
舉報(bào)
0/150
提交
取消