Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python scrapy提取作为表一部分的div标记项_Python_Xpath_Scrapy - Fatal编程技术网

使用python scrapy提取作为表一部分的div标记项

使用python scrapy提取作为表一部分的div标记项,python,xpath,scrapy,Python,Xpath,Scrapy,我正在尝试使用python scrapy提取网页上的一些数据。我对HTML/CSS的了解还不够,无法确定它的格式是否正确,但似乎不正确。我感兴趣的目标信息具有如下所示的模式。一个表包含一组我感兴趣提取的条目(名称、年份、Int1、Int2)。但是这些不是标准的TD标签,而是DIV标签的一部分。下面是一个例子: <table width='100%'> <tr> <td width='50%'> <div style='width: 10px; float

我正在尝试使用python scrapy提取网页上的一些数据。我对HTML/CSS的了解还不够,无法确定它的格式是否正确,但似乎不正确。我感兴趣的目标信息具有如下所示的模式。一个表包含一组我感兴趣提取的条目(名称、年份、Int1、Int2)。但是这些不是标准的TD标签,而是DIV标签的一部分。下面是一个例子:

<table width='100%'>
<tr>
<td width='50%'>
<div style='width: 10px; float: left'>&nbsp;</div>
     <div style='width: 232px; float: left'>Mr. Richard D. Hanson</div>
     <div style='width: 40px; float: left'>1989</div>
     <div style='width: 88px; float: left; text-align: right'>1</div>
     <div style='width: 88px; float: left; text-align: right'>27</div></td><td width='50%'><div style='width: 10px; float: left'>&nbsp;</div>
     <div style='width: 232px; float: left'>Alison G. Mills, CPA</div>
     <div style='width: 40px; float: left'>1989</div>
     <div style='width: 88px; float: left; text-align: right'>8</div>
     <div style='width: 88px; float: left; text-align: right'>12</div></td></tr><tr><td width='50%'><div style='width: 10px; float: left'>&nbsp;</div>
     <div style='width: 232px; float: left'>Mr. Timothy D. Harrell</div>
     <div style='width: 40px; float: left'>1989</div>
     <div style='width: 88px; float: left; text-align: right'>28</div>
     <div style='width: 88px; float: left; text-align: right'>28</div></td><td width='50%'><div style='width: 10px; float: left'>&nbsp;</div>
     <div style='width: 232px; float: left'>Debora R. Mitchell, PhD</div>
     <div style='width: 40px; float: left'>1989</div>
     <div style='width: 88px; float: left; text-align: right'>20</div>
     <div style='width: 88px; float: left; text-align: right'>21</div></td></tr><tr><td width='50%'><div style='width: 10px; float: left'>&nbsp;</div>
<div style='width: 232px; float: left'>Mr. Tim J. Scoggins</div>
     <div style='width: 40px; float: left'>1989</div>
     <div style='width: 88px; float: left; text-align: right'>1</div>
     <div style='width: 88px; float: left; text-align: right'>9</div>
</td>
</tr>
</table>
尝试2: 在这次尝试中,我希望调用一次,然后遍历每个条目并将其存储在字典中。不幸的是,我不知道这里发生了什么

>>> response.xpath('//table[@width="100%"]/tr/td[@width="50%"]/div[@style="width: 10px; float: left"]/text()').extract()
[u'\xa0', u'\xa0', u'\xa0', u'\xa0', u'\xa0']

有什么想法吗?

您可以获得每个内部
分区的文本,然后:


美好的我可以在这里看到这个例子的效果,但这里是我试图从中提取的页面:。在那里,虽然我得到了选择器xpath的输出-知道如何进一步深入吗?@nthacker我认为在你的例子中,
data
应该是
data=response.xpath(“//div[@id='ContentMiddle']]/table[2]/tr/td/div/text()”。extract()
-请测试一下。是的!谢谢
>>> response.xpath('//table[@width="100%"]/tr/td[@width="50%"]/div[@style="width: 10px; float: left"]/text()').extract()
[u'\xa0', u'\xa0', u'\xa0', u'\xa0', u'\xa0']
In [1]: data = response.xpath("//table/tr/td/div/text()").extract() 
In [2]: [data[x+1:x+5] for x in xrange(0, len(data), 5)]
Out[2]: 
[[u'Mr. Richard D. Hanson', u'1989', u'1', u'27'],
 [u'Alison G. Mills, CPA', u'1989', u'8', u'12'],
 [u'Mr. Timothy D. Harrell', u'1989', u'28', u'28'],
 [u'Debora R. Mitchell, PhD', u'1989', u'20', u'21'],
 [u'Mr. Tim J. Scoggins', u'1989', u'1', u'9']]