вытащить веб-страницы с сайта для взрослых - как пройти соглашение сайта? - PullRequest
1 голос
/ 14 декабря 2009

Я пытаюсь разобрать несколько веб-страниц со взрослого сайта, используя Ruby:

require 'hpricot'
require 'open-uri'

doc = Hpricot(open('random page on an adult website'))

Однако вместо этого я получаю начальную страницу «Соглашение о сайте», которая гарантирует, что вам больше 18 лет и т. Д.

Как мне пройти соглашение о сайте и получить нужные мне веб-страницы? (Если есть способ сделать это, подойдет любой язык.)

Ответы [ 3 ]

3 голосов
/ 14 декабря 2009

Вам нужно будет выяснить, как сайт обнаруживает, что посетитель принял соглашение.

Самый очевидный выбор - куки. Вероятно, когда посетитель принимает соглашение, в его браузер отправляется файл cookie, который затем передается обратно на сайт при каждом последующем запросе.

Вам нужно будет заставить свой скрипт вести себя как посетитель, приняв cookie и отправляя его при каждом последующем запросе. Это потребует программирования с вашей стороны, чтобы сначала запросить страницу «принять соглашение», найти cookie и сохранить его для использования. Вероятно, они не используют определенный файл cookie для соглашения, а хранят его в сеансе, и в этом случае вам просто нужно найти файл cookie сеанса.

0 голосов
/ 14 декабря 2009

Установите плагин LiveHTTPHeaders для Firefox и посетите этот сайт. Посмотрите заголовки и посмотрите, что произойдет, когда вы примете соглашение. Вы, вероятно, увидите, что браузер отправляет некоторый запрос (возможно, пост) и принимает некоторые файлы cookie. Затем вам придется повторить все действия браузера в вашем скрипте Ruby.

0 голосов
/ 14 декабря 2009

На странице «Соглашение о сайте», вероятно, есть ссылка, которую вы должны щелкнуть, или форма, которую необходимо отправить, чтобы вернуться на сервер, чтобы продолжить. Прочитайте источник этой страницы, чтобы быть уверенным. Вы можете отправить этот ответ обратно из вашей заявки. Я не знаю, как это сделать в Ruby, но я видел похожие задачи, выполняемые с использованием cURL и libcurl, которые, вероятно, можно использовать из Ruby.

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