Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72

Парсинг фото товаров с алиэкспресс в крупном разрешении

11.08.2017, 12:50. Показов 6976. Ответов 15

Студворк — интернет-сервис помощи студентам
Хотел написать парсер фото товаров с алиэкспресс вместе с ссылками на сами товары, но когда, но не нашел ссылки на jpg, на превьюшки есть, а на сами фото не могу найти. Как их достать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2017, 12:50
Ответы с готовыми решениями:

Нужны фото материнской платы Asus a53s в крупном плане
Здравствуйте. Проблема моя такова - принесли бук на который написяли (видать на буке пеленали). Ждали до тех пор пока бук не перестал...

Парсинг товаров и изображений
Доброго дня! Написал скриптик, парсящий данные о товарах с другого сайта. Что он делает: 1. С помощью PHPExcel загружает...

Некорректно отображаются фото товаров в категории
Всем добра! Проблема с темой может кто сталкивался и победил это? Тема Woodmart Версия темы 5.2.0 проблема отображения фото товаров в...

15
Эксперт по компьютерным сетям
 Аватар для Jabbson
5906 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
11.08.2017, 14:10
так вот же

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">
    if(!window.runParams) {
    window.runParams = {};
    }
    window.runParams.imageServer="https://ae01.alicdn.com";
    window.runParams.imageDetailPageURL="";
    
    window.runParams.imageBigViewURL=[
        "https://ae01.alicdn.com/kf/HTB1RYANSpXXXXcmXpXXq6xXFXXXS/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1HugiSpXXXXc9aXXXq6xXFXXXk/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1h2kBSpXXXXXEXVXXq6xXFXXXQ/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1kjgvSpXXXXXZXVXXq6xXFXXXU/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1L7MBSpXXXXXtXVXXq6xXFXXXZ/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1JEsVSpXXXXc7XXXXq6xXFXXXi/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg"
        ];
        window.runParams.mainBigPic = "https://ae01.alicdn.com/kf/HTB1RYANSpXXXXcmXpXXq6xXFXXXS/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg";
</script>
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
11.08.2017, 14:55  [ТС]
Здравствуйте, эти фото маленькие превьюшные, мне надо большие, видел их где-то в get запросах, но как туда пролезть не знаю и еще я не знаю javaScript
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.08.2017, 15:53
То есть это превью?
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
11.08.2017, 16:55  [ТС]
Нет. А как питоном это достать? Например, набираю категорию и для товаров этой категории собираю фото
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.08.2017, 17:29
Цитата Сообщение от DarkChirik Посмотреть сообщение
А как питоном это достать?
Один из N способов:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import re
 
html = """\
<script type="text/javascript">
    if(!window.runParams) {
    window.runParams = {};
    }
    window.runParams.imageServer="https://ae01.alicdn.com";
    window.runParams.imageDetailPageURL="";
    
    window.runParams.imageBigViewURL=[
        "https://ae01.alicdn.com/kf/HTB1RYANSpXXXXcmXpXXq6xXFXXXS/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1HugiSpXXXXc9aXXXq6xXFXXXk/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1h2kBSpXXXXXEXVXXq6xXFXXXQ/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1kjgvSpXXXXXZXVXXq6xXFXXXU/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1L7MBSpXXXXXtXVXXq6xXFXXXZ/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1JEsVSpXXXXc7XXXXq6xXFXXXi/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg"
        ];
        window.runParams.mainBigPic = "https://ae01.alicdn.com/kf/HTB1RYANSpXXXXcmXpXXq6xXFXXXS/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg";
</script>"""
 
 
list_= re.findall(r'(?s)(imageBigViewURL=.+\]);',html)[0]
exec(list_ )
print(imageBigViewURL)
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
11.08.2017, 17:53  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
так вот же

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">
    if(!window.runParams) {
    window.runParams = {};
    }
    window.runParams.imageServer="https://ae01.alicdn.com";
    window.runParams.imageDetailPageURL="";
    
    window.runParams.imageBigViewURL=[
        "https://ae01.alicdn.com/kf/HTB1RYANSpXXXXcmXpXXq6xXFXXXS/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1HugiSpXXXXc9aXXXq6xXFXXXk/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1h2kBSpXXXXXEXVXXq6xXFXXXQ/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1kjgvSpXXXXXZXVXXq6xXFXXXU/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1L7MBSpXXXXXtXVXXq6xXFXXXZ/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg",
        "https://ae01.alicdn.com/kf/HTB1JEsVSpXXXXc7XXXXq6xXFXXXi/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg"
        ];
        window.runParams.mainBigPic = "https://ae01.alicdn.com/kf/HTB1RYANSpXXXXcmXpXXq6xXFXXXS/AUKEY-Quick-Charge-3-0-Power-Bank-10050mAh-Battery-Two-Way-Quick-Charging-Powerbank-Portable-Charger.jpg";
</script>
А как программно получить ссылки, которые у вас в коде уже написаны?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.08.2017, 18:03
Цитата Сообщение от DarkChirik Посмотреть сообщение
А как программно получить ссылки
Любым доступным парсером:bs4,grab,lxml,html.parser.
Более мне ничего неизвестно из вашей задачи, даже url который вы хотите парсить.
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
11.08.2017, 21:03  [ТС]
Да вы правы: ссылку я не дал простите. Мне нужно чтобы пользователь ввел в поиск на сайте "алиэкспресс" определенный вид товара, потом скопировал ссылку на результат поиска в инпут скрипта, а скрипт вытянул ссылки на заказ каждого товара и его изображение и так по странично, чтобы потом скопировать найденые ссылки в текстовый файл и поместить изображения в папку с этим файлом.
---
Спасибо вам теперь я знаю, что ссылки на фото начинаются с:
"https://ae01.alicdn.com/kf..."

Добавлено через 45 минут
Подскажите какой из написаных парсеров быстрее? Сейчас хочу использовать метод xpath, но не знаю как создать запрос на поиск определенных ссылок, в моем случае: "https://ae01.alicdn.com/kf...." как мне сделать это?

Добавлено через 1 час 39 минут
https://msdn.microsoft.com/ru-... .120).aspx
Руководствуясь этим материалом делал так:
('.//a/@href["https://ae01.alicdn.com/kf"]')
Но все равно выдает ссылки не по фильтру, а все что есть.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.08.2017, 01:24
Лучший ответ Сообщение было отмечено DarkChirik как решение

Решение

Цитата Сообщение от DarkChirik Посмотреть сообщение
Подскажите какой из написаных парсеров быстрее?
Считается что lxml, поскольку написан на Си.
bs4 и grab это, собственно, не парсеры, а обертки над парсерами lxml\htmllib5\html.parser + дополнительный функционал для граббинга.
----------------------
Простой пример для парсинга ссылок на утюги :-)

Python
1
2
3
4
5
6
7
8
9
10
11
import requests
import lxml.html
 
url = "https://ru.aliexpress.com/wholesale?catId=0&initiative_id=SB_20170811132257&SearchText=утюг"
resp = requests.get(url)
tree = lxml.html.fromstring(resp.text)
xpath = './/a[@class="history-item product "]'  # нафига в конце имени класса пробел нужно спрашивать у дезигнера сайта :-)
links = tree.xpath(xpath)
for a in links:
    print(a.attrib.get('title')) # название товара
    print(a.attrib.get('href')) # ссылка на страницу заказа
Вообще, описания товаров лежат в <div> класса info. А внутри них уже есть <a> с классом "history-item product ".
Однако вторых почему-то меньше чем первых. С этим разбирайтесь сами.

P.P. S. Ссылки на большие фото я видел только на странице заказа. Следовательно, если они нужны - нужно парсить и эту страницу.

Добавлено через 4 минуты
Бесплатное API у этого сайта интересно есть?
А то html у них не самый приятный для парсинга.

Добавлено через 29 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
описания товаров лежат в <div> класса info.
Глянул на страницы других товаров: на самом деле на каждой странице у этих div'ов, обертывающих описание, разные классы. Какая-то общая логика сохраняется только для элементов <a>.
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
12.08.2017, 12:20  [ТС]
Спасибо. Не подскажите пожалуйста как сделать фильтр по поиску, например, чтобы парсились только ссылки на фото (.jpg)?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.08.2017, 13:13
Приведите пример конкретной ссылки на страницу с которой нужно взять эти ссылки и укажите какие именно ссылки нужны.
Если приводить обобщенный пример то, например, так:
Python
1
2
3
print(tree.xpath('.//*[contains(@*,".jpg")]')) # все элементы содержащие в любых атрибутах значение .jpg
print(tree.xpath('.//*[contains(@src,".jpg")]/@src')) # значение атрибута src из  всех элементов содержащих атрибут src
print(tree.xpath('.//img[contains(@src,".jpg")]/@src')) # значение атрибута src из элементов <img> содержащих атрибут src
Добавлено через 2 минуты
Ссылки на фото в атрибутах href вы не найдете. Для них используется тэг <img> и атрибут src или image-src (на этом сайте).
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
12.08.2017, 13:20  [ТС]
Спасибо. Ссылки я нашел, а это спросил уже, потому что, интересно
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.08.2017, 13:46
Цитата Сообщение от DarkChirik Посмотреть сообщение
Ссылки я нашел
И каким образом?
--------------------------------------
Еще пару вариантов с использованием встроенных функций XPath:
Python
1
2
print(tree.xpath('.//img[starts-with(@src,"//ae01.alicdn.com")]/@src')) # значение атрибута src из элементов <img> если значение атрибута src начинается с "//ae01.alicdn.com
print(tree.xpath('.//img[substring(@src,string-length(@src) - 3)=".jpg"]/@src')) # значение атрибута src из элементов <img> если значение атрибута src заканчивается на .jpg; минус 3 потому что индексация в XPath с 1
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
12.08.2017, 13:53  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
И каким образом?
--------------------------------------
Еще пару вариантов с использованием встроенных функций XPath:
xpath('.//meta[@property="og:image"]') от ссылки с товаром

Добавлено через 1 минуту
picture = fromstring(get_html(link)).xpath('.//meta[@property="og:image"]')
for link in picture:
download_img(link.attrib.get('content'))
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.08.2017, 14:20
А, так это на странице заказа. Понятно.
Можно также и без цикла сразу извлекать текст атрибута:
Python
1
xpath('.//meta[@property="og:image"]/@content')[0]
Хотя, конечно, цикл дает гарантию, что не будет ошибки обращения к несуществующему индексу, если вдруг текста (точнее атрибута) не окажется.
Но вот так будет просто пустая строка, если текста не окажется:
Python
1
2
res = tree.xpath('string(.//meta[@property="og:image"]/@content)')
print(res)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2017, 14:20
Помогаю со студенческими работами здесь

Парсинг Вк API. Фото
Ребята пожалуйста. Требуется помощь. Нужно спарсить данные из группы. Всего 3-4 тыс человек. Дело в том, что надо спарсить фото и...

Парсинг Товаров с интернет магазина
Имеется класс &quot;OzBy&quot;, В переменную &quot;Link&quot; Записывается ссылка необходимой категории товаров с сайта. Здесь происходит непосредственно...

Парсинг описания товаров с Aliexpress
Всем привет! По url через request requests.get(url) получаю отдачу по товару например,...

Как удалить все фото товаров с магазина?
в результате разнообразных экспериментов по загрузке данных с 1С, у меня вдруг, в некоторых товарах повились вторые картинки, причем...

Как добавить в xml из 1с фото для товаров
Господа, подскажите ,пожалуйста, как мне работать с файлом xml который мне дали из 1с. Этот файл с товарными позициями, у каждой позиции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru