Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2018 00:38:14

kirussian
Зарегистрирован: 2018-08-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг. Сохранить картинки в нужную папку.

Всем привет! Совсем новичок в питоне, подскажите, как мне явно указать в коде, чтобы все картинки сохранялись в папку? Вот код:

https://gist.github.com/kirussian911/51d96c9e1051e412843e101a9e59d1e4

Отредактировано kirussian (Авг. 28, 2018 00:38:45)

Офлайн

#2 Авг. 28, 2018 04:57:07

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 144
Репутация: +  8  -
Профиль   Отправить e-mail  

Парсинг. Сохранить картинки в нужную папку.

 import os
import re
import urllib.request
import requests
def load_source(website):
    site = urllib.request.urlopen(website)
    read_site = site.read()
    return read_site
def parse_img(source):
    links = []
    t = str(source)
    pattern = '<img width="\d+" height="\d+" src="'
    result = re.split(pattern, t)
    # рабочий вариант через replace
    # t = str(source).replace('550', ' ').replace('375', ' ').split('<img width=" " height=" " src="')
    for i in result:
        r = str(i).split('""')
        links.append(r[0])
    return links
# Здесь мы получаем имя файла и сохраняем его
def download(links):
    folder = 'ali'
    if not os.path.exists(folder):
        os.makedirs('ali')
    for i in links:
        try:
            v = requests.get(i, stream=True)
            filename = i.replace('?', '/').split('/')[8]
            #https://i0.wp.com/aliholic.com/wp-content/uploads/2018/08/magnetic-phone-holder-e153497563539jpg0.?resize=375%2C375&amp;ssl=1"
            print(filename) # magnetic-phone-holder-e1534975635390.jpg
            with open(f'{folder}/{filename}', 'bw') as f:
                for chunk in v.iter_content(4096):
                    f.write(chunk)
        except:
            pass
def main():
    print('start page: ')
    source = load_source('https://aliholic.com/shop/')
    links = parse_img(source)
    download((links))
    print('Tnx')
if __name__=='__main__':
    main()
python 3.6 - и выше

Отредактировано Vigi (Авг. 28, 2018 04:58:41)

Офлайн

#3 Авг. 28, 2018 10:18:57

kirussian
Зарегистрирован: 2018-08-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг. Сохранить картинки в нужную папку.

Vigi
Спасибо за помощь!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version