2012-03-14 3 views
2

私は、特許弁護士および特許代理人が米国特許第&商標局に登録されている率を見たいと思っていました。 USPTOは、弁護士や代理店に関する.zipファイルのデータを提供していますが、不思議なことに.zipファイルに登録日を記載していません。これらの日付は、各弁護士または代理人の下のUSPTOのウェブサイトでのみ示されています。curl、sed //誰かがウェブとプロセスから情報を引き出す良い方法を知っていますか?

日付をプルダウンするために、私は次のように使用:

curl -q https://oedci.uspto.gov/OEDCI/details.do?regisNum=[25560-69398:500] | sed -e 's/<[^>]*>//g' | sed -n -e '/Registered/,/nbsp/p' -e '/Registration/,/nbsp/p' | sed -e 's/&nbsp;//g' > dates.txt 

私は唯一の傾向を確立するので、多くのデータを必要なので、私はすべての500番目弁護士/エージェントの登録日を引くことにしました。

私は、必要以上の情報が含まれているファイルを作成しました(例:見出し、登録番号、日付だけは必要ありませんでした)。

質問:私がここで述べることを達成するために、より良い方法や簡単な方法がありますか?たとえば、何も編集しないで、プロットするための列データを直接作成するのは本当にうれしいでしょう。

警告:
1)弁護士の中には、エージェントとして登録したときと、弁護士として登録したときの2つの登録日があります。私は最初の日付だけを必要とし、2番目の日付を編集しなければなりませんでした。
2)登録番号がありません。上記のコマンドを使用して私のデータセットで、登録番号が存在しない場合、それはスキップされました。

ありがとうございます!

+0

確かに多くの方法がありますが、私はあなたの好きな言語でスクリプトを書いています(perlはこのタイプの作業には本当に良いです)。 – Alan

+0

これらはかなり大きな注意書きです。プロセスを再イメージ化し、データをオープンソースデータベースに保存することを検討してください。限られたツールを使ってこの問題を解決することができたとしても、「いつも迅速かつ汚れています」というメッセージを送信していますが、データベースのQ&Dとなるプロジェクトが割り当てられていますが、 sed/awk/perlを使ってdbを実装する必要があります。確かであれば、これを過ぎて成長することはありません。それ以外の場合は、あなたのアプローチを再考する時間かもしれません。いずれにせよ、幸運! – shellter

+0

静かな/静かなことを意味しますか? '-q'は' wget'です。 '-s'は' curl'です。 – kev

答えて

0

カール(または同様のツール)と正規表現は、あなたが迅速かつ汚れた解決策を得るのに長い道のりをもたらすかもしれませんが、今まで知っているように、彼らは重い義務のためには正しくありません。

あなたが必要とするのは、ウェブページを処理するすべての手順を自動化するのに役立つスクレーパーです。少なくとも(完全にうまく構成されていると思われる)ページデータから確実に情報を抽出するための完全なHTMLページパーサーです。ほぼすべての一般的な言語には多くのものがありますので、答えは実際にどの言語を使用するかによって異なります。たとえば、Pythonを使用している場合、scrapyはよく知られているフルスクレーパーソリューションです。 bs4には、データ抽出を扱う素晴らしいインターフェースがあります。

0

Pythonコードを実行できる場合は、Beautiful Soupを使用することを強くお勧めします。

関連する問題