title: how to extract a list of label value with scrapy when html tag are missing
body: <p>I am currently processing a document with </p>
  
  <pre><code>&lt;b&gt; label1 &lt;/b&gt;
  value1 &lt;br&gt;
  &lt;b&gt; label2 &lt;/b&gt;
  value2 &lt;br&gt;
  ....
  </code></pre>
  
  <p>I can't figure out a clean approach to xpath with scrapy.
  here is my best implementation</p>
  
  <pre><code>hxs = HtmlXPathSelector(response)
  
  section = hxs.select(..............)
  values = section.select("text()[preceding-sibling::b/text()]"):
  labels = section.select("text()/preceding-sibling::b/text()"):
  </code></pre>
  
  <p>but I am not comfortable with this approach for matching nodes of both lists through index. I'd rather iterate through 1 list  ( values or labels) and query the matching  nodes as relative xpath. Such as :</p>
  
  <pre><code>values = section.select("text()[preceding-sibling::b/text()]"):
  for value in values:
      value.select("/preceding-sibling::b/text()"):
  </code></pre>
  
  <p>I have been tweaking this expression but always return no matchs</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>I am looking for robust method that will tolerate "noise", e.g. :</p>
  
  <pre><code>garbage1&lt;br&gt;
  &lt;b&gt; label1 &lt;/b&gt;
  value1 &lt;br&gt;
  &lt;b&gt; label2 &lt;/b&gt;
  value2 &lt;br&gt;
  garbage2&lt;br&gt;
  &lt;b&gt; label3 &lt;/b&gt;
  value3 &lt;br&gt;
  &lt;div&gt;garbage3&lt;/div&gt;
  </code></pre>