Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Запрос страницы сайта с php (https://javascript.ru/forum/server/75677-zapros-stranicy-sajjta-s-php.html)

wadim 28.10.2018 22:16

Запрос страницы сайта с php
 
Всем привет! На https://www.bloomberg.com/profiles/c...th-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/phanto...r-df065e5b23bf

laimas 29.10.2018 10:03

SuperZen,
причем тут картинки, нужен код страницы для последующего граббера, а данный сайт имеет хорошую защиту, надо полагать с привлечением JS.

Nexus 29.10.2018 10:16

Цитата:

Сообщение от laimas
надо полагать с привлечением JS

Что-то я не вижу для чего тут может понадобится js...
Со страницы же просто нужно получить информацию о компании (Название, описание, адрес, etc.)?
Думаю обычного curl, который будет косить под браузер должно хватить.

laimas 29.10.2018 10:33

Цитата:

Сообщение от Nexus
Думаю обычного curl, который будет косить под браузер должно хватить.

Ну и в чем проблема, сложно попробовать? ;)

В чем суть JS? А в том, что с CURL с сохранением кук легко обмануть атакуемого, а вот ответ от клиента с выполнением js сценария, это посложнее будет, хотя уже есть решения с выполнением такого на сервере.

Nexus 29.10.2018 11:22

Цитата:

Сообщение от laimas
Ну и в чем проблема, сложно попробовать?

Лень) После работы, может быть, попробую. На домашнем пк есть класс, имитирующий браузер.

Цитата:

Сообщение от laimas
ответ от клиента с выполнением js

Сервер на запрос отдает все данные в виде html, даже если js есть, то нафига он нам нужен, если данные уже получены?

SuperZen 29.10.2018 12:11

Цитата:

Сообщение от laimas (Сообщение 497324)
SuperZen,
причем тут картинки, нужен код страницы для последующего граббера, а данный сайт имеет хорошую защиту, надо полагать с привлечением JS.

Потому что phantomjs это headless-browser, открываешь ссылку, там исполняется html+js, по таймауту берешь DOM, и парсишь его, я предполагал вот это... Да, берешь CEF, тоже самое...

laimas 29.10.2018 14:02

SuperZen,
я так думаю, что нужен граббер чужого, то есть не это.

laimas 29.10.2018 14:03

Цитата:

Сообщение от Nexus
Сервер на запрос отдает все данные в виде html

Сервер еще подумает, что отдать. Ищите на хабре, есть там о "борьбе" подобной, не помню точно с каким доменом, есть и на хакер.ру, было по крайней мере.

SuperZen 30.10.2018 13:02

Цитата:

Сообщение от laimas (Сообщение 497343)
SuperZen,
я так думаю, что нужен граббер чужого, то есть не это.

Это оно и есть

laimas 30.10.2018 13:57

Цитата:

Сообщение от SuperZen
Это оно и есть

И каким образом, если клиент запросил, сервер утянул и вставил себе, вернул клиенту? Заставлять клиента иметь этот инструмент, вставлять ссылку, выполнять, ...?

Если судить по вопросу, то нужно несколько не то, о чем вы речь ведете.

SuperZen 30.10.2018 14:25

Вложений: 2
Вопросов нет, или так, или никак

для пэхапэ:
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/Chromi...dded_Framework), и управляем хромом из программы...

laimas 30.10.2018 14:39

Есть время свободное? Если цена вопроса сопоставима с ценой работы - вперед. :)

SuperZen 30.10.2018 15:21

Вложений: 1
https://electronjs.org/docs/tutorial...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
  })
}


Результат на скриншоте )


Часовой пояс GMT +3, время: 22:36.