Веб-сайты часто блокируют запросы, которые не имеют агента пользователя. Я обновил ваш код для отправки пользовательского агента вместе с запросом. Я также решил просто использовать библиотеку requests
и канаву urllib
. Хотя urllib
поддерживает измененные заголовки, вы уже использовали requests
, и я более знаком с ним.
Я также предлагаю добавить задержку / сон между запросами, 30-45 секунд - хорошая сумма. Это позволит избежать спама на сайте и создания отказа в обслуживании. Некоторые сайты также блокируют ваши запросы, если вы отправляете слишком много слишком быстро.
import requests
from bs4 import BeautifulSoup
user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.37"
url = 'https://www.webtoons.com/en/slice-of-life/how-to-love/ep-100-happy-ending-last-episode/viewer?title_no=472&episode_no=100'
data = requests.get(url, headers={'User-Agent': user_agent})
code = BeautifulSoup(data.text, 'html.parser')
photos = []
def dl_jpg(url, filePath, fileName):
fullPath = filePath + fileName + '.jpg'
# make request with user-agent. If request is successful then save the result.
image_request = requests.get(url, headers={'User-Agent': user_agent})
if image_request.status_code == 200:
with open(fullPath, 'wb') as f:
f.write(image_request.content)
for img in code.find('div', id='_imageList'):
pic = str(img)[43:147]
photos.append(str(pic))
for photo in photos:
if photo == '':
photos.remove(photo)
for photo in photos[0:-4]:
dl_jpg(photo, 'images/', 'img')