2012-01-13 77 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