Скрипт для извлечения всех изображений с веб-страницы

Я просто хочу добавить, что решила эту проблему для меня, так как она отличается от всех вышеперечисленных ответов.

Ajax-вызовы, которые вызывали проблему, пытались передать пустой объект данных. Кажется, IE не нравится, но другие браузеры не против.

Чтобы исправить это, я просто удалил data: {}, из вызова ajax.

1
задан eyllanesc 18 February 2019 в 04:32
поделиться

1 ответ

РЕДАКТИРОВАТЬ: Для контекста, поскольку исходный вопрос был обновлен кем-то другим и изменил исходный код, исходный шаблон, который использовал пользователь, был r'/([\w_-]+.). Это была оригинальная проблема. Этот контекст позволит сделать следующий ответ более понятным:

Я использовал шаблон, подобный r'/([\w_.-]+). Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL.

import re
import requests
from bs4 import BeautifulSoup

site = 'http://pixabay.com'

response = requests.get(site)

soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')

urls = [img['src'] for img in img_tags]

for url in urls:
    filename = re.search(r'/([\w_.-]+). Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL. 

[110]
. Это была оригинальная проблема. Этот контекст позволит сделать следующий ответ более понятным:

Я использовал шаблон, подобный r'/([\w_.-]+). Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL.

[110]. Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL.

[110], url) with open(filename.group(1), 'wb') as f: if 'http' not in url: # sometimes an image source can be relative # if it is provide the base url which also happens # to be the site variable atm. url = '{}{}'.format(site, url) response = requests.get(url) f.write(response.content)
. Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL.

[110]. Это была оригинальная проблема. Этот контекст позволит сделать следующий ответ более понятным:

Я использовал шаблон, подобный r'/([\w_.-]+). Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL.

[110]. Шаблон, который вы использовали, не позволял пути содержать ., кроме как в качестве последнего символа, потому что . за пределами [] означает любой символ, и вы имели его прямо перед $ (конец строки ). Поэтому я переместил . в [], что означает, что в группе персонажей можно использовать литерал .. Это позволило шаблону захватывать имена файлов изображений в конце URL.

[110]
0
ответ дан facelessuser 18 February 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: