我要抓取与Greasemonkey的一个网站,不知道是否有更好的方法来暂时存储值比GM_setValue。

我想要做的就是爬我的联系人在社交网络,并从他们的个人资料页面中提取Twitter的网址是什么。

我目前的计划是在它自己的标签,打开每个配置文件,使之看起来更像是一个正常的浏览者(即CSS,scrits和图像将被浏览器加载)。然后存储Twitter的网址与GM_setValue。一旦所有的个人资料页面已经被抓取,使用存储的值来创建一个页面。

我不是很高兴与存储选项,虽然。也许有更好的办法?

我已经考虑将用户配置文件到当前页面,这样我可以都具有相同的脚本实例处理它们,但我不知道,如果XMLHttpRequest的看起来与普通用户发起的请求indistignuishable。

有帮助吗?

解决方案

我有一个类似的项目,我需要从一个网站获得了一大堆(发票行数据),并将其导出到一个会计数据库。

您可以创建一个的.aspx(或PHP等)后端,其处理在数据库中的POST数据并将其存储。

您从一个单一页面需要的任何数据可以使用字段名称或ID的识别数据被存储在一个表单(使用样式属性隐藏,如果你想)。然后,所有你需要做的就是让表单动作.aspx页,并使用JavaScript提交表单。

(或者你可以添加一个提交按钮的页面,让您提交到数据库之前检查表单值)。

其他提示

我觉得你应该先问自己,为什么要使用Greasemonkey的为您的特定问题。 Greasemonkey的开发,以此来改变自己的浏览体验 - 而不是一个网络蜘蛛。虽然你可能能够获得Greasemonkey的做到这一点使用GM_setValue,我想你会发现你的解决方案是缺憾,难以发展。也就是说,它会需要许多人工步骤(如打开所有的标签,清除脚本的运行之间的Greasemonkey的变量等)。

是否要执行任何你正在做需要在页面上JavaScript的?如果是的话,你可能要考虑使用Perl和的 WWW ::机械化::插件:: JavaScript的。否则,我会建议你做这一切在一个简单的Python脚本。你会想看看在的urllib2 模块。例如,看看下面的代码(注意,它使用cookielib如果你的脚本需要您登录到一个站点,以支持cookie,你很可能需要):

import urllib2
import cookielib
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
response = opener.open("http://twitter.com/someguy")
responseText = response.read()

然后,你可以做你想做使用正则表达式的处理。

你有没有考虑谷歌齿轮?这将让您获得您可以存储大量的信息在本地SQLite数据库。

  

原因希望的Greasemonkey   是,被抓取的页面呢   没有真正批准的机器人。   Greasemonkey的似乎是最简单的   方法,使履带外观   合法。

其实通过浏览器污点抓取工具并不能使它更加合理。你还在打破使用本网站的条款! WWW ::机械化例如同样适合于“恶搞”你的用户代理字符串,但和爬行是,如果该网站不允许蜘蛛/爬虫,违法!

  

原因希望Greasemonkey的是,页面抓取并没有真正认可的机器人。 Greasemonkey的好像让履带看似合法的最简单的方法。

我觉得这是使履带看似合法想象得到的最困难的方式。欺骗的web浏览器是与HTTP标头的一些基本的理解很轻松。

此外,有些网站的启发式寻找行为类似蜘蛛的客户,所以只是简单地提出请求如浏览器并不意味着不会知道你在做什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top