私はscrapyで遊んでいますが、scrapyをうまく活用するには、xpathの知識が不可欠であることがわかります。タグがそのようにフォーマットされている場所からいくつかの情報を収集しようとしているWebページがあります
<div id = "content">
<h1></h1>
<p></p>
<p></p>
<h1></h1>
<p></p>
<p></p>
これで、見出しにタイトルが含まれ、最初の「p」にはdata1が含まれ、2番目の「p」にはdata2が含まれます。これは非常に簡単な作業のように思えます。これが常に当てはまる場合は、問題はありませんhsx.select('//*[@id="content"]')
。
問題は、ヘッダーの後に2つではなく1つのpタグしかない場合があることです。
<div id = "content">
<h1></h1>
<p></p> (a)
<h1></h1>
<p></p> (b)
<p></p> (c)
段落タグが欠落している場合は、その情報を空白のデータとしてリストに保存したいと思います。現在、リストには最初の見出し1、最初の段落タグ(a)、次に2番目のh1(b)の下の段落タグが格納されています。それがすべきことは保存することです
title -> h1[0]
data1[0] -> (a)
data2[0] ->[]
それが理にかなっていることを願っています。私はこれを行うための良いxpathまたはscrapyソリューションを探していましたが、それを見つけることができないようです。役立つヒントは素晴らしいでしょう。ありがとう