Получить все изображения продукта изнутри страницы продукта - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь очистить эту страницу (главную страницу), что я и сделал.

Теперь я хочу очистить все изображения, перейдя на страницу каждого продукта.

Таким образом, это должно быть как с главной страницы перейти на страницу продукта, загрузить все изображения продукта, вернуться на главную страницу, затем перейти на следующую страницу продукта и т. Д.

Я использовал requests библиотеку, ниже приведен код, через который я получаю Имя и изображение с главной страницы

Как расширить этот код для получения изображений продукта со страницы продукта

url = 'https://middleware.paytmmall.com/fmcg-foods-glpid-101405'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}


payload = {
'channel': 'web',
'child_site_id': '6',
'site_id': '2',
'version': '2',
'discoverability': 'online',
'use_mw': '1',
'category': '101405',
'page': '1',
'page_count': '1',
'items_per_page': '32'}


#total pages needed
jsonData = requests.post(url, headers=headers, data=payload).json()
total_count = jsonData['totalCount']
total_pages = total_count / 32
pages = math.ceil(total_pages)


from pandas import DataFrame

NAME = []
IMG = []

for page in range(1,pages + 1):
    payload.update({'page':page, 'page_count':page})

    jsonData = requests.post(url, headers=headers, data=payload).json()

    for product in jsonData['grid_layout']:
        name = product['name']
        img = product['image_url']

        print ('Name: %s\nImage: %s\n' %(name, img))

        NAME.append(name)
        IMG.append(img)

Пример: это это страница 1-го продукта с главной страницы, и я хочу загрузить оттуда все изображения продукта, затем вернуться на главную страницу и перейти к следующей странице продукта.

1 Ответ

1 голос
/ 25 июня 2019

Слияние под кодом после оператора print ('Name: %s\nImage: %s\n' %(name, img)), он загрузит все изображения и сохранит их в текущем каталоге скриптов. Изображение сохраняется с image name, как указано в URL.

imagename = img.split("/")[-1]
r = requests.get(img)
if r.status_code == 200:
    with open(imagename, 'wb') as f:
        f.write(r.content)

OR

если вы не хотите сохранять изображение в текущей директории скрипта, просто хотите изображение содержание попробуйте это.

imagename = img.split("/")[-1]
r = requests.get(img)
if r.status_code == 200:
    img_dict = dict(imageName=imagename,content=r.content)
    NAME.append(name)
    IMG.append(img_dict)

UPDATE:

Получить все изображения товара

img_url = product['url']
img_response = requests.get(img_url).json()
if "other_images" in img_response:
    print(img_response['other_images'])

O / P:

[
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_15.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_16.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_17.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_18.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_19.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_20.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASRLNC-C-500GNTBL4974726639099/a_21.jpg'
][
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASTAJ-MAHAL-TETBL4974748E953C4/a_22.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASTAJ-MAHAL-TETBL4974748E953C4/a_23.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASTAJ-MAHAL-TETBL4974748E953C4/a_24.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASTAJ-MAHAL-TETBL4974748E953C4/a_25.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASTAJ-MAHAL-TETBL4974748E953C4/a_26.jpg',
  'https://assetscdn1.paytm.com/images/catalog/product/F/FA/FASTAJ-MAHAL-TETBL4974748E953C4/a_27.jpg'
]
.....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...