3

我们目前有一些文章发布到我们的网站上。它们可以与以下类型的 html 一起出现

<p>this is an article<br>
<img src="someimage">
</p>

<p>this is an article<br>
<img src="someimage">
</p>

<p>this is an article<br>
<img src="someimage">
</p>

<p>this is an article<br>
<img src="someimage">
</p>

或者

<p><img src="someimage">
this is an article<br>
</p>
<p>this is an article<br>
<img src="someimage">
</p>
<p><img src="someimage">
this is an article<br>
</p>

有时其他一些html标签可能在其中,我无法理解如何使用coldfusion来抓取页面来实现这一点

基本上我需要做的是抓住第一段文字和图像并能够安排它。

这可能使用 Coldfusion 8 吗?谁能指出我如何学习这个的方向?

4

1 回答 1

8

100% 绝对有可能!

现在,不要被我将要提出的建议所推迟,实际上这很容易上手。

下载一个名为 jSoup 的库......它的唯一目的是从网页中的 DOM 中抓取内容:

http://jsoup.org/

然后,您将通过执行以下操作来使用此 Java 类:

<!--- Get the page. --->
<cfhttp method="get" url="http://example.com/" resolveurl="true" useragent="#cgi.http_user_agent#" result="myPage" timeout="10" charset="utf-8">
<cfhttpparam type="header" name="Accept-Encoding" value="*" />   
<cfhttpparam type="header" name="TE" value="deflate;q=0" />        
</cfhttp>

<!--- Load up jSoup and parse the document with it. --->
<cfset jsoup = createObject("java", "org.jsoup.Jsoup") />
<cfset document = jsoup.parse(myPage.filecontent) />

<!--- Search the parsed document for the contents of the TITLE tag. --->
<cfset title = document.select("title").first() />

<!--- Let's see what we got. --->
<cfdump var="#title#" />

这个例子非常简单,但它可以向您展示它是多么容易使用。如果您查看 jSoup 上的文档,那么抓取图像和其他任何内容都会相当容易。

此页面上有一些很好的示例,您可以在其中使用CSS样式选择器:

http://jsoup.org/cookbook/extracting-data/selector-syntax

尽量避免在这项任务中使用正则表达式 - 相信我,我已经尝试过了,这绝对是一罐蠕虫!

希望这可以帮助。米奇。

于 2013-05-03T09:43:07.977 回答