まず、これは私の前の質問からのスポーンです。質問が以前に適切に定義されていないと感じたため、元の投稿で回答を受け入れた人からそうするように勧められたため、これを再度投稿しました。試行 2 は次のとおりです。
この Web ページから情報を取得しようとしています。明確にするために、以下はページソースのブロックの選択です:
<p class="titlestyle">ANT101H5 Introduction to Biological Anthropology and Archaeology
<span class='distribution'>(SCI)</span></p>
<span class='normaltext'>
Anthropology is the global and holistic study of human biology and behaviour, and includes four subfields: biological anthropology, archaeology, sociocultural anthropology and linguistics. The material covered is directed to answering the question: What makes us human? This course is a survey of biological anthropology and archaeology. [<span class='Helpcourse'
onMouseover="showtip(this,event,'24 Lectures')"
onMouseout="hidetip()">24L</span>, <span class='Helpcourse'
onMouseover="showtip(this,event,'12 Tutorials')"
onMouseout="hidetip()">12T</span>]<br>
<span class='title2'>Exclusion: </span><a href='javascript:OpenCourse("WEBCOURSENOTFOUND.html")'>ANT100Y5</a><br>
<span class='title2'>Prerequisite: </span><a href='javascript:OpenCourse("WEBCOURSEANT102H5.pl?fv=1")'>ANT102H5</a><br>
上記のサンプル ブロックから、次の情報を抽出したいと思います。
ANT101H5 Introduction to Biological Anthropology and Archaeology
Exclusion: ANT100Y5
Prerequisite: ANT102H5
Webページからそのようなすべての情報を取得したいと思います(一部のコースには、追加でリストされている「相互必須条件」がある場合や、前提条件/相互条件または除外条件がまったくリストされていない場合があることに注意してください)。
このタスクに適した xpath 式を書こうとしていますが、うまくできていないようです。
これまでのところ、ディミトレ・ノヴァチェフの助けを借りて、次の表現を使用することができました。
sites = hxs.select("(//p[@class='titlestyle'])[2]/text()[1] | (//span[@class='title2'])[2]/text() | \
(//span[@class='title2'])[2]/following-sibling::a[1]/text() | (//span[@class='title2'])[3]/text() | \
(//span[@class='title2'])[3]/following-sibling::a[1]/text()")
ただし、次の出力が生成されます。これは、ページの最初のコースの情報のみを取得しているようです。
[{"desc": "ANT101H5 Introduction to Biological Anthropology and Archaeology \n "},
{"desc": "Exclusion: "},
{"desc": "ANT100Y5"},
{"desc": "Prerequisite: "},
{"desc": "ANT102H5"}]
明確にするために、この出力は、最初のコースに関する正しい情報を取得する場合にのみ正しいものです。その Web ページにリストされているすべてのコースについて、このような正しい情報が必要です。
私はとても近づいていますが、その最後のステップを理解することができないようです.
助けていただければ幸いです...事前に感謝します