2012-01-13 45 views
1

我在这里看到的一篇文章:http://code.lancepollard.com/automatically-publish-posts-to-stumbleupon-with-ruby我如何使用PHP来操作DOM?

我不知道红宝石,但下面的线是相当自我解释:

page       = agent.get("http://www.stumbleupon.com/submit?url=#{url}&title=#{title}") 
    form       = page.forms.first 
    form.radiobuttons_with(:name => "sfw").first.check 
    page       = agent.submit(form) 

我猜红宝石可以获取该网页,选中一个复选框,然后提交表格。这可能使用PHP?

+0

既然你要学习一个新的图书馆,你可能会考虑学习ruby。 – pguardiario 2012-01-13 22:34:44

回答

1

你实际引用的Ruby代码使用名为Mechanize的第三方库。

对于PHP类似的东西是SimpleTest Scriptable Browser。它不像Mechanize那么丰富,但可以完成工作,并且可以独立于SimpleTest框架使用它。

+0

有趣。我从来没有听说过这个。 – pguardiario 2012-01-13 22:33:09

0

并非开箱即用。可能有一个可以为你做的第三方库。一个可能的帮助是PHPQuery循环访问一个提取页面并选择表单及其值。然后提交将不得不使用卷曲或类似的...!

更多信息:

抓取的网页:http://php.net/manual/en/function.file-get-contents.php

JQuery的是PHP:http://code.google.com/p/phpquery/wiki/Basics一个基本的介绍

提交与卷曲的一种形式:http://davidwalsh.name/execute-http-post-php-curl

+0

其实'DOMDocument :: loadHTMLFile()'加上XPath是一个“开箱即用”的解决方案。但我仍然会推荐第三方库。 – Matthew 2012-01-13 22:18:46

+0

红宝石也无法做到这一点。 ruby示例使用Mechanize,它不在标准库中。 – steenslag 2012-01-13 22:20:45