def parse_mul(args): global retry_num obj, url = args req = Req() while True: try: response = req.get(url) except (requests.exceptions.ConnectionError, requests.exceptions.ChunkedEncodingError): # print('\n\033[0;37;41m远程主机强迫关闭了一个现有的连接。\033[0m') if (retry and (retry_num < retry_max)): retry_num += 1 # print('第%d次重试' % retry_num) else: print('\n爬取失败') else: if response.status_code != 200: parse_mul(url) return soup = BeautifulSoup(response.text, features='lxml') for i in soup.find_all('figure'): img_id = i['data-wallpaper-id'] urls = 'https://w.wallhaven.cc/full/' + img_id[: 2] + '/wallhaven-' + img_id + '.jpg' if urls not in obj.url_list: obj.url_list.append(urls) progress_bar(obj, '爬取进度') break