从成人网站上拉网页 - 如何通过网站协议?

时间:2009-12-14 20:17:41

标签: html ruby parsing

我正在尝试使用Ruby从成人网站解析一堆网页:

require 'hpricot'
require 'open-uri'

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

然而,我最终获得的是最初的“网站协议”页面,确保您是18岁以上等。

如何通过网站协议并提取我想要的网页? (如果有办法,任何语言都可以。)

3 个答案:

答案 0 :(得分:3)

您将不得不弄清楚该网站如何检测到访问者已接受该协议。

最明显的选择是cookies。可能当访问者接受协议时,会向其浏览器发送一个cookie,然后在随后的每个请求中将其传回该站点。

您必须通过接受cookie并将其与每个后续请求一起发送,让您的脚本像访问者一样行事。这将需要您编程以首先请求“接受协议”页面,找到cookie并存储以供使用。他们可能不会为协议使用特定的cookie,而是将其存储在会话中,在这种情况下,您只需要找到会话cookie。

答案 1 :(得分:0)

“网站协议”页面可能包含您必须提交的链接或表单,您必须提交该链接以发送回服务器才能继续。阅读该页面的来源以确定。您可以从您的应用程序发回该响应。我不知道如何在Ruby中做到这一点,但我已经看到使用cURL和libcurl完成的类似任务,可以从Ruby中使用。

答案 2 :(得分:0)

为Firefox安装LiveHTTPHeaders插件并访问此站点。观看标题,看看接受协议后会发生什么。您可能会看到浏览器发送一些请求(可能是Post)并接受一些cookie。然后你将不得不重复Ruby脚本中的任何浏览器。