0

嘿伙计们,所以我正在制作一个脚本来从这个网站(http://grecni.com/texttwist.php)获取单词/结果,所以我已经准备好了 http 请求发布,等等。

我现在唯一需要做的就是取出单词,所以我正在使用一个看起来像这样的 html 源代码:

<html>
<head>
<title>Text Twist Unscrambler</title>
<META NAME="keywords" CONTENT="Text,Twist,Text Twist,Unscramble,Free,Source,php">
</head>
<body>

<font face="arial,helvetica" size="3">
<p>
<b>3 letter words</b><br>sae &nbsp; sac &nbsp; ess &nbsp; aas &nbsp; ass &nbsp; sea &nbsp; ace &nbsp; sec &nbsp; <p>

<b>4 letter words</b><br>cess &nbsp; secs &nbsp; seas &nbsp; ceca &nbsp; sacs &nbsp; case &nbsp; asea &nbsp; casa &nbsp; aces &nbsp; caca &nbsp; <p>

<b>5 letter words</b><br>cacas &nbsp; casas &nbsp; caeca &nbsp; cases &nbsp; <p>
<b>6 letter words</b><br>access &nbsp; <br><br>
Found 23 words in 0.22962 seconds


<form action="texttwist.php" method="post">

enter scrambled letters and I'll return all word combinations<br>
<input type="text" name="l" value="asceacas" size="20" maxlength="20">

<input type="submit" name="button" value="unscramble">
<input type="button" name="clear" value="clear" onClick="this.form.l.value='';">
</form><p>

<a href=texttwist.phps>php source</a>
- it's kinda ugly, but it's fast<p>

<a href=/>back to my page</a>

</body>

</html>

我正在尝试获取“sae”、“sav”、“secs”、“seas”、“casas”等词。

有什么帮助吗?

这是我得到的最远的地方,不知道从这里做什么。:链接文本

有什么建议么?帮助?

4

2 回答 2

1

使用像Nokogiri这样的 HTML 解析器。

于 2010-07-31T23:06:14.833 回答
0

如果你想要任何类型的鲁棒性,你真的需要一个解析器,正如 Adrian 所提到的,Nokogiri是最流行的解决方案。

如果您坚持,请注意随着页面变得更加复杂,您可能会陷入疯狂,以下可能会有所帮助:

搜索匹配的行

/^<b>\d+ letter words/

然后你可以像这样挖掘这些位:

a = line.split(/<br>/)[1] # the second half
a.gsub!('<p>', '') # take out the trailing <p>
res = a.split(' &nbsp; ')# this is your data

话虽如此,这不是您在生产代码中想要的任何东西。你会惊讶于学习解析器会如何改变你看待这个问题的方式。

于 2010-07-31T23:54:05.750 回答