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 に答える