Просмотр полной версии : Запрос страницы сайта с php
Всем привет! На https://www.bloomberg.com/profiles/companies/0003530D:US-united-grinding-north-america-inc
нужно отправить запрос и получить ВСЮ страницу, аналог этого:
file_get_contents('https://www.bloomberg.com/profiles/companies/0003530D:US-united-grinding-north-america-inc');
У кого получиться заплачу, не обижу. Нужно на php.
SuperZen
29.10.2018, 09:34
Проблему не описал, http://phantomjs.org/
Ну даже если он и все ), то он еще может...
https://medium.com/devschacht/phantomjs-is-over-df065e5b23bf
SuperZen,
причем тут картинки, нужен код страницы для последующего граббера, а данный сайт имеет хорошую защиту, надо полагать с привлечением JS.
надо полагать с привлечением JS
Что-то я не вижу для чего тут может понадобится js...
Со страницы же просто нужно получить информацию о компании (Название, описание, адрес, etc.)?
Думаю обычного curl, который будет косить под браузер должно хватить.
Думаю обычного curl, который будет косить под браузер должно хватить.
Ну и в чем проблема, сложно попробовать? ;)
В чем суть JS? А в том, что с CURL с сохранением кук легко обмануть атакуемого, а вот ответ от клиента с выполнением js сценария, это посложнее будет, хотя уже есть решения с выполнением такого на сервере.
Ну и в чем проблема, сложно попробовать?
Лень) После работы, может быть, попробую. На домашнем пк есть класс, имитирующий браузер.
ответ от клиента с выполнением js
Сервер на запрос отдает все данные в виде html, даже если js есть, то нафига он нам нужен, если данные уже получены?
SuperZen
29.10.2018, 12:11
SuperZen,
причем тут картинки, нужен код страницы для последующего граббера, а данный сайт имеет хорошую защиту, надо полагать с привлечением JS.
Потому что phantomjs это headless-browser, открываешь ссылку, там исполняется html+js, по таймауту берешь DOM, и парсишь его, я предполагал вот это... Да, берешь CEF, тоже самое...
SuperZen,
я так думаю, что нужен граббер чужого, то есть не это.
Сервер на запрос отдает все данные в виде html
Сервер еще подумает, что отдать. Ищите на хабре, есть там о "борьбе" подобной, не помню точно с каким доменом, есть и на хакер.ру, было по крайней мере.
SuperZen
30.10.2018, 13:02
SuperZen,
я так думаю, что нужен граббер чужого, то есть не это.
Это оно и есть
Это оно и есть
И каким образом, если клиент запросил, сервер утянул и вставил себе, вернул клиенту? Заставлять клиента иметь этот инструмент, вставлять ссылку, выполнять, ...?
Если судить по вопросу, то нужно несколько не то, о чем вы речь ведете.
SuperZen
30.10.2018, 14:25
Вопросов нет, или так, или никак
для пэхапэ:
https://github.com/cztomczak/phpdesktop
если делать через file_get_contents('https://www.bloomberg.com/profiles/companies/0003530D:US-united-grinding-north-america-inc');
причина (см вложение):
Страница в браузере загружается при запросе, но при cURL и file_get_contents происходит определение, неизвестно по каким параметрам, что это фейковый запрос, значит его надо замаскировать под реальный, а реальный, только из браузера (будем считать)...
Чтобы манипулировать браузером из программы, как сам понимаешь, это не просто...
Для этого берем CEF (https://en.wikipedia.org/wiki/Chromium_Embedded_Framework), и управляем хромом из программы...
Есть время свободное? Если цена вопроса сопоставима с ценой работы - вперед. :)
SuperZen
30.10.2018, 15:21
https://electronjs.org/docs/tutorial/first-app#%D0%9F%D0%BE%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0% B9%D1%82%D0%B5-%D1%8D%D1%82%D0%BE%D1%82-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80
Потом в файле main.js
поправить ф-цию:
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600})
mainWindow.loadURL('https://www.bloomberg.com/profiles/companies/0003530D:US-united-grinding-north-america-inc')
mainWindow.webContents.openDevTools()
mainWindow.on('closed', function () {
mainWindow = null
})
}
Результат на скриншоте )
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot