Скачивание файлов

Пресет Скачивать файлы 1.0

Available for license holders
  • Автор темы Автор темы Al
  • Дата начала Дата начала

Al

A-Parser Enterprise License
A-Parser Enterprise
Добрый день, подскажите как можно скачивать файлы, например после выборки гугл filetype:doc
Желательно сохранять их под новым именем.
 
Решаем задачу 2-мя заданиями.
1) Парсим выдачу Гугл, сохраняем линки и анкоры (будут использованы в качестве названий файлов) в файл:
neE6q.png

Код:
eyJwcmVzZXQiOiJmaWxlZG93bmxvYWQgLSAxIiwidmFsdWUiOnsicHJlc2V0Ijoi
ZmlsZWRvd25sb2FkIC0gMSIsInBhcnNlcnMiOltbIlNFOjpHb29nbGUiLCJkZWZh
dWx0Iix7InR5cGUiOiJvdmVycmlkZSIsImlkIjoiZm9ybWF0cmVzdWx0IiwidmFs
dWUiOiIkc2VycC5mb3JtYXQoJyRsaW5rOyRhbmNob3JcXG4nKSJ9LHsidHlwZSI6
ImZpbHRlciIsInJlc3VsdCI6WyJzZXJwIiwibGluayJdLCJmaWx0ZXJUeXBlIjoi
cmVtYXRjaCIsInZhbHVlIjoiXFwuZG9jfFxcLnhsc3xcXC5wZGYiLCJvcHRpb24i
OiJpIn1dXSwicmVzdWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2
ZVRvIjoiZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6ImZpbGVkb3dubG9hZHMvdXJs
cy50eHQiLCJhZGRpdGlvbmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJu
byIsInF1ZXJ5Rm9ybWF0IjpbIiRxdWVyeSJdLCJ1bmlxdWVRdWVyaWVzIjpmYWxz
ZSwic2F2ZUZhaWxlZFF1ZXJpZXMiOmZhbHNlLCJpdGVyYXRvck9wdGlvbnMiOnsi
b25BbGxMZXZlbHMiOmZhbHNlLCJxdWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6
ZmFsc2V9LCJyZXN1bHRzT3B0aW9ucyI6eyJvdmVyd3JpdGUiOmZhbHNlfSwiZG9M
b2ciOiJubyIsImtlZXBVbmlxdWUiOiJObyIsIm1vcmVPcHRpb25zIjpmYWxzZSwi
cmVzdWx0c1ByZXBlbmQiOiIiLCJyZXN1bHRzQXBwZW5kIjoiIiwicXVlcnlCdWls
ZGVycyI6W10sInJlc3VsdHNCdWlsZGVycyI6W3sic291cmNlIjpbMCxbInNlcnAi
LCJhbmNob3IiXV0sInR5cGUiOiJyZW1vdmVIdG1sIiwiYXJyYXkiOiJzZXJwIiwi
dG8iOiJhbmNob3IifSx7InNvdXJjZSI6WzAsWyJzZXJwIiwiYW5jaG9yIl1dLCJ0
eXBlIjoiZGVjb2RlSHRtbCIsImFycmF5Ijoic2VycCIsInRvIjoiYW5jaG9yIn1d
LCJjb25maWdPdmVycmlkZXMiOltdfX0=
*Здесь дополнительно фильтруем ссылки, чтобы они содержали в себе расширение файла, а также удаляем из анкоров HTML теги и сущности.

2) По каждой ссылке скачиваем файл, именуем его по имени анкора и добавляем расширение из ссылки:
LQIab.png

Код:
eyJwcmVzZXQiOiJmaWxlZG93bmxvYWQgLSAyIiwidmFsdWUiOnsicHJlc2V0Ijoi
ZmlsZWRvd25sb2FkIC0gMiIsInBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1
bHQiLHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIsInZhbHVl
IjoiJHF1ZXJ5LmxpbmsifV1dLCJyZXN1bHRzRm9ybWF0IjoiJHAxLmRhdGEiLCJy
ZXN1bHRzU2F2ZVRvIjoiZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6ImZpbGVkb3du
bG9hZHMvJHtxdWVyeS5hbmNob3J9LiRxdWVyeS5leHQiLCJhZGRpdGlvbmFsRm9y
bWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJubyIsInF1ZXJ5Rm9ybWF0IjpbIiRx
dWVyeSJdLCJ1bmlxdWVRdWVyaWVzIjpmYWxzZSwic2F2ZUZhaWxlZFF1ZXJpZXMi
OmZhbHNlLCJpdGVyYXRvck9wdGlvbnMiOnsib25BbGxMZXZlbHMiOmZhbHNlLCJx
dWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6ZmFsc2V9LCJyZXN1bHRzT3B0aW9u
cyI6eyJvdmVyd3JpdGUiOnRydWV9LCJkb0xvZyI6Im5vIiwia2VlcFVuaXF1ZSI6
Ik5vIiwibW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1bHRzUHJlcGVuZCI6IiIsInJl
c3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpbeyJzb3VyY2UiOiJxdWVy
eSIsInR5cGUiOiJzdHJpbmdTcGxpdCIsInNlcGFyYXRvciI6IjsiLCJ0byI6WyJs
aW5rIiwiYW5jaG9yIl19LHsic291cmNlIjoibGluayIsInR5cGUiOiJyZWdleCIs
InJlZ2V4IjoiXFwuKGRvY3g/fHhsc3g/fHBkZikiLCJyZWdleFR5cGUiOiJpIiwi
dG8iOlsiZXh0Il19LHsic291cmNlIjoiYW5jaG9yIiwidHlwZSI6InN0cmluZ1Jl
cGxhY2UiLCJzZWFyY2giOiIvIiwicmVwbGFjZSI6Il8iLCJ0byI6ImFuY2hvciJ9
XSwicmVzdWx0c0J1aWxkZXJzIjpbXSwiY29uZmlnT3ZlcnJpZGVzIjpbXX19
*Здесь в качестве файла запросов указываем файл, полученный в предыдущем задании.

В результате получаем папку со скачанными в нее файлами.

P.S. Названия файлов можно менять как угодно, также используя переменные апарсера:
$query.num-${query.anchor}.$query.ext - номер запроса и анкор
$datefile.format()($query.num)-${query.anchor}.$query.ext - дата, номер запроса и анкор
 
Последнее редактирование:
а если файлы размером 1-2гб, нормально скачает?
 
нет, т.к. контент первоначально загружается целиком в память для обработки, я не рекомендую загружать что то более 10 мб
 
Тоже хотел поблагодарить сапорт. Недавно приобрел, не жалею. :)
 
Пробовал таким образом выкачивать фотки - многие оказались битыми.
http://clip2net.com/s/3p5Jbzx
Все картинки очень маленькие по размеру, но все равно получаются битыми.
 
Насчет Max body size все верно. Но если увеличение данного параметра не решило проблему (потому что в данном случае контент действительно не большой), то проверьте в настройках А-Парсера формат переноса строки:
41w6i.png

Для того, чтобы картинка не была битой, должен использоваться UNIX формат.
 
Вот тут да, у меня стоит Windows. Вопрос такой - повлияет ли это как то на те парсеры, что уже есть? Я имею в виду на их результаты в файлах?
 
Повлияет на отображение результатов в разных текстовых редакторах. На сами парсеры не должно влиять, но все зависит от самих пресетов...
 
Рано я обрадовался. Битых картинок действительно больше не было, но где то половина не открывалась с ошибкой:
файл слишком большой либо поврежден.
 
Проверял. Могу кинуть ссылку на эти конкретные файлы. В браузере открываются нормально, а через парсер, даже если подавать на вход одну эту ссылку - изображение не открывается. По тем темам - уже нет смысла дублировать.
В общем для уточнения:
Перевод строки - LF(UNIX)
Остальные настройки - со скрина.
По ссылке отдается именно картинка. С браузера открывается нормально. Поток - 1.
 
Все отлично скачивается:)
Проверьте, возможно у вас включен Уник по строке?

И, наверное, лучше писать уже в Скайп или Аську: http://a-parser.com/pages/support/, т.к. это похоже на единичный случай.
 
Долго не было, проблема решилась.
Видимо из-за проксей, но переодически качалась совсем не картинка. Благодаря саппорту проблему решили добавлением проверки регуляркой. На всякий случай пресет.
eyJwcmVzZXQiOiJkb3dubG9hZF90ZXN0IiwidmFsdWUiOnsicHJlc2V0IjoiZG93
bmxvYWRfdGVzdCIsInBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1bHQiLHsi
dHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJnb29kQ29kZSIsInZhbHVlIjoyMDB9LHsi
dHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJmb3JtYXRyZXN1bHQiLCJ2YWx1ZSI6IiRk
YXRhIn0seyJ0eXBlIjoib3B0aW9ucyIsImlkIjoiY2hlY2tDb250ZW50IiwidmFs
dWUiOiIoP3NpKV4oKD8haHRtbCkuKSokIn0seyJ0eXBlIjoib3ZlcnJpZGUiLCJp
ZCI6InByb3h5cmV0cmllcyIsInZhbHVlIjoiMTAwIn1dXSwicmVzdWx0c0Zvcm1h
dCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2ZVRvIjoiZmlsZSIsInJlc3VsdHNG
aWxlTmFtZSI6InBpYy8ke3F1ZXJ5Lm51bX0uanBnIiwiYWRkaXRpb25hbEZvcm1h
dHMiOltdLCJyZXN1bHRzVW5pcXVlIjoibm8iLCJxdWVyeUZvcm1hdCI6WyIkcXVl
cnkiXSwidW5pcXVlUXVlcmllcyI6ZmFsc2UsInNhdmVGYWlsZWRRdWVyaWVzIjpm
YWxzZSwiaXRlcmF0b3JPcHRpb25zIjp7Im9uQWxsTGV2ZWxzIjpmYWxzZSwicXVl
cnlCdWlsZGVyc0FmdGVySXRlcmF0b3IiOmZhbHNlfSwicmVzdWx0c09wdGlvbnMi
Onsib3ZlcndyaXRlIjpmYWxzZX0sImRvTG9nIjoibm8iLCJrZWVwVW5pcXVlIjoi
Tm8iLCJtb3JlT3B0aW9ucyI6ZmFsc2UsInJlc3VsdHNQcmVwZW5kIjoiIiwicmVz
dWx0c0FwcGVuZCI6IiIsInF1ZXJ5QnVpbGRlcnMiOltdLCJyZXN1bHRzQnVpbGRl
cnMiOltdLCJjb25maWdPdmVycmlkZXMiOltdfX0=
 
Назад
Верх