运行环境:
OS : CentOS 6 64 位
Scrapy 1.0.3
Python 2.7.4
需求:
http://ip/a.html
<div class="a">
<ul>
<li>
<strong>属性 1</strong>
内容 1
</li>
<li>
<strong>属性 2</strong>
内容 2
</li>
<li>
<strong>属性 3</strong>
内容 3
</li>
...
<ul>
</div>
文件 2 : http://ip/b.html:
<div class="a">
<ul>
<li>
<strong>属性 1</strong>
内容 1
</li>
<li>
<strong>属性 3</strong>
内容 3
</li>
<li>
<strong>属性 4</strong>
内容 3
</li>
<li>
<strong>属性 5</strong>
内容 3
</li>
...
<ul>
</div>
'//div[@class="a"]/ul/li[1]/text ()' # 提取第一个 li
'//div[@class="a"]/ul/li[2]/text ()' # 提取第二个 li
每一个属性的内容将会赋值给对应的变量,例如属性 1 就赋值给 var1 ,属性 2 就赋值给 var2 , var1 和 var2 最终会写入 DB 。
此处最关键的问题在于 某些页面的第二个<li>并不一定就是属性 2 ,有可能是属性 3 ,这样就会造成提取到的第二个<li>会赋值给 var3 (在属性 2 不存在的情况下),甚至是 var4 (在属性 1 属性 2 都不存在的情况下)。
请问各位爬虫牛人,有什么办法能解决这个问题? 感谢。