2010-07-27 78 views
0

我使用SimpleHtmlDOM PHP相当成功地刮去了我最喜欢的一些网页。但是,其中一些页面要求我在登录之前先登录我真正关心的信息。有人知道如何(或者如果有可能)让图书馆访问页面,在访问页面之前需要输入用户名和密码?我所做的一切最新的东西,如开始......使用SimpleHtmlDOM +登录?

$html = file_get_html('http://www.google.com/'); 

回答

2

极少数的网站使用相同的认证机制,所以没有一个方式总是与网站进行身份验证。

你最好的选择是使用cURL,使你的刮板看起来像一个真正的浏览器。这意味着using cookies(搜索页面上的“cookie”,您可能想要使用cookie文件/ jar)并将它们存储在某处,导航到登录表单,成功提交它,然后继续使用该“浏览器”会话执行你的刮。

请确保网站不介意以这种方式被刮掉。如果发现,您可能会被禁止访问网站,具体取决于网站所有者不喜欢抄袭。

+0

有趣的是,为什么会有人关心被这样的刮? – vicatcu 2010-07-27 03:19:32

+0

@vicatcu,这取决于网站是什么,以及你在做什么与数据。例如,如果您登录的网站仅为会员托管论坛并拉出帖子,网站所有者可能并不满意。 – Charles 2010-07-27 03:41:07

+0

哦,我明白你的意思了,我无意拉取私人数据并将其重新发布到公共空间。感谢您的建议! – vicatcu 2010-07-27 15:22:44

0

simplehtmldom的另一个问题是dom必须正确,因为dom中的错误会导致解析器错误,并且该对象将为空。