Scrapy:从元标记中提取值

时间:2014-03-12 20:28:54

标签: python xpath scrapy

我正在为网页构建一个抓取工具,由于某种原因决定为我在元标记中提取的项目保存ID号

<meta content="1001662613">

其中引号中的数字是我想要的数字。

我尝试使用xpath

Id = title.select('//meta [@content]').extract()

但结果却是空洞的。使用

Id = title.select('//meta/@content').extract()

反过来在meta标签后给我整个页面的源代码......

有没有办法从标签中提取数字,而不是试图进入标签(这是空的)?

供参考,以下是ID编号所在页面源部分的示例

<link rel="stylesheet" type="text/css" href="/ccss/2076d1c6bea75c5b6f4c753b3b4920b6_14bfe2d5b91d791bc05282634acdfb68.css" />
<script type="text/javascript" src="/cjs/986570aebf4e6cef6e0a52faa9c5a8a2_f4ceae6565fa007f39ee4e0abe02ab7b.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<script type="text/javascript" src="/cjs/a373b58f85b5e68c60f3edc35b348e14_a2abaa7837c3e1ccda94d6fe6b0f7a8f.js"></script>
<meta content="1001657519"/>
<link href="http://www.groupon.com.uy/descuentos/montevideo/sushi-go-26-12-7" rel="canonical" />
<link href="http://www.groupon.com.uy/deals/feed.rss" type="application/rss+xml" rel="alternate" title="Groupon - Descuentos" />
<meta name="title" content="Desde $264 en vez de $462 por 24, 48 o 72 piezas de sushi en Sushi Go"/>

1 个答案:

答案 0 :(得分:2)

由于页面上有多个//meta/@content标记,

meta会返回多个结果。只需过滤包含数字的那个:

ids = title.select('//meta/@content').extract()
print [id for id in ids if id.isdigit()]

Hoep有帮助。