私はプログラミングにかなり慣れていないので、これに対する解決策を見つけようとしていますが、見つけることができるのは、すべてをまとめる運がまったくないビットとピースだけです。
BeautifulSoup4
in を使用しpython
て、いくつかをスクレイピングxml
し、テキスト値を変数の特定のタグの間に保存しようとしています。データは医学生のトレーニング プログラムからのものであり、現在、必要なものはすべて手動で見つける必要があります。そこで、スクレイピングプログラムで効率を少し上げようとしています。
たとえば、実験のためにこのタイプのテストデータを見ていたとしましょう:
<AllergyList>
<Allergy>
<Deleted>n</Deleted>
<Status>
<Active/>
</Status>
<ExternalID/>
<Patient>
<ExternalID/>
<FirstName>Testcase</FirstName>
<LastName>casetest</LastName>
</Patient>
<Allergen>
<Name>Flagyl (metronidazole)</Name>
<Drug>
<NDCID>00025182151,00025182131,00025182150</NDCID>
</Drug>
</Allergen>
<Reaction>difficulty breathing</Reaction>
<OnsetDate>02/02/2013</OnsetDate>
</Allergy>
<Allergy>
<Deleted>n</Deleted>
<Status>
<Active/>
</Status>
<ExternalID/>
<Patient>
<ExternalID/>
<FirstName>Testcase</FirstName>
<LastName>casetest</LastName>
</Patient>
<Allergen>
<Name>Bactrim (sulfamethoxazole-trimethoprim)</Name>
<Drug>
<NDCID>13310014501,49999023220</NDCID>
</Drug>
</Allergen>
<Reaction>swelling</Reaction>
<OnsetDate>05/03/2002</OnsetDate>
</Allergy>
<Number>2</Number>
</AllergyList>
プルの結果をそれぞれの変数に保存しながら<Name>
、複数のタグの間からタグをプルし、とタグ<Allergen>
の間からそれぞれのデータをプルしようとしました。<Onsetdate>
<Reaction>
したがって、たとえば、、、、、、、、などをプルし、Flagyl (metronidazole)
後で使用できるように別の変数に配置します。difficulty breathing
02/02/2013
Bactrim (sulfamethoxazole-trimethoprim)
swelling
05/03/2002
タグから最初のセットを取得するのは簡単ですが、取得したデータを変数に格納する<Allergen>
方法を反復処理する方法がわかりません。xml
データを配列またはリストに格納する際に for ループを使用しようとしましたが、これまで書いてきた方法では、len()
関数から計算する反復回数に応じて、常に同じデータを何度もプルします。それ以来、配列への保存に失敗しました。
私はこれについてしばらくの間頭を悩ませてきましたが、私はそれほど頭が良くないかもしれないと思うので、助けや正しい方向に私を向けさえすれば、非常に高く評価されます.