Я ищу способ соскрести веб-сайт со стороны сервера (который использует javascript) и сохранить результат после анализа данных в базе данных mysql. Мне нужно перейти со страницы на страницу, щелкнув ссылки и отправив данные из базы данных без истечения срока действия сеанса. Возможно ли это с помощью плагина веб-браузера phpquery? , Я начал делать это с помощью casperjs. Я хотел бы знать плюсы и минусы обоих методов. Я новичок в кодировании. Пожалуйста помоги.Скремблирование сайта с javascript
ответ
Я бы рекомендовал вам использовать PhantomJS
или CasperJS
и проанализировать DOM с помощью селекторов JavaScript, чтобы получить части страниц, которые вы хотите вернуть. Не используйте phpQuery, поскольку он основан на PHP и потребует отдельного шага в вашей обработке вместо использования только разбора JavaScript DOM. Кроме того, вы не сможете выполнять события click с помощью PHP. Любая клиентская сторона должна быть запущена в PhantomJS или CasperJS.
Возможно, даже можно написать полный очищающий движок, используя только PHP, если это ваш серверный язык выбора. Вам нужно будет перестроить процесс входа в систему и поддерживать куки-файлы cookie с вашими запросами cURL, чтобы ваш логин был действительным с каждым запросом. После того, как вы установили сеанс с веб-сайтом, вы можете настроить свой путь навигации с помощью массива ссылок, которые вы хотите просканировать. Идея веб-сканирования заключается в том, что вы загружаете страницу с некоторой ссылки и обрабатываете страницу, а затем переходите к следующей ссылке. Вы продолжаете этот процесс до тех пор, пока все страницы не будут обработаны, а затем ваш обход будет завершен.
Я бы воспользовался Google Guide Making AJAX Applications Crawlable, сайт, который вы пытаетесь ломать, мог принять схему (сделать контент своего сайта сканируемым).
Вы хотите найти #!
в хэш-фрагменте URL, это указывает на искателя, что сайт поддерживает схему обхода AJAX.
Проще говоря, когда вы сталкиваетесь с таким URL-адресом. www.example.com/ajax.html#!key=value
, вы должны изменить его на www.example.com/ajax.html?_escaped_fragment_=key=value
. Сервер должен ответить на HTML-снимок этой страницы.
Вряд ли кто-нибудь это использует. Было бы гораздо более совместимо использовать что-то вроде PhantomJS. – Brad
Я видел, как он использовался на нескольких более крупных сайтах, но я согласен с тем, что он не очень распространен. –
- 1. Скремблирование данных с сайта, использующего javascript
- 2. Скремблирование данных с сайта с поддержкой JavaScript JavaScript
- 3. Скремблирование javascript с RCurl
- 4. Скремблирование/синтаксический анализ с сайта
- 5. Скремблирование Javascript с Python
- 6. Скремблирование содержимого JS сайта с использованием perl
- 7. Скремблирование всех комментариев с определенного сайта
- 8. Скремблирование веб-сайта с помощью javascript-команд (Jsoup)
- 9. Скремблирование html с URL-адресами с сайта
- 10. Скремблирование сломанного веб-сайта html
- 11. Скремблирование информации о плейлисте с сайта
- 12. Скремблирование данных HTML с сайта в Python
- 13. Php Скремблирование данных с веб-сайта
- 14. Скремблирование данных с динамического веб-сайта
- 15. Python 3.5 | Скремблирование данных с сайта
- 16. Скремблирование сайта с аутентификацией окна оповещения
- 17. Скремблирование информации с сайта и в список?
- 18. Скремблирование сайтов с поддержкой Javascript?
- 19. Скремблирование javascript с помощью R
- 20. Скремблирование сайта, чей URL не изменяется
- 21. Скремблирование Javascript с использованием Selenium через Python
- 22. Python Web Скремблирование сайта-вывод в Excel
- 23. Python - Скремблирование данных сайта - форматирование печатных результатов
- 24. Скремблирование данных с веб-сайта с использованием Python 2
- 25. Скремблирование данных с внешнего сайта с именем пользователя и паролем
- 26. Скремблирование ссылок с сайта с помощью Node.js, request и cheerio?
- 27. (Python) Скремблирование данных с веб-сайта с тегами 'style: hidden'?
- 28. Скремблирование данных с веб-сайта с помощью vba
- 29. Скремблирование таблицы данных с китайского веб-сайта с использованием Python
- 30. Скремблирование данных с сайта с несколькими URL-адресами
Такого рода "* A или B *?" вопрос действительно не по теме для переполнения стека. Для phpQuery может потребоваться дополнительный плагин, но он должен быть способен. При этом выясните, есть ли на сайте общедоступный API, который вы можете использовать или обратитесь к владельцам, чтобы узнать, готовы ли они его создать. Хороший API почти наверняка будет проще использовать. –
Его правительственный сайт, и он не имеет api. :( –
Было бы намного проще посоветовать вам, если бы мы знали, какие данные вы хотели и откуда ... – shennan