python - Scrapy:从元标记中提取值

标签 python xpath scrapy

我正在为一个网页构建一个爬虫,该网页出于某种原因决定在元标记中保存我正在提取的项目的 ID 号

<meta content="1001662613">

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

我尝试使用 xpath

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

但是结果是空的。使用

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

然后在元标记之后给我整个页面的源代码...

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

作为引用,这里是页面源代码所在部分的示例

<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"/>

最佳答案

//meta/@content 由于页面上有多个 meta 标记而返回多个结果。只过滤包含数字的那个:

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

希望有帮助。

关于python - Scrapy:从元标记中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22363078/

相关文章:

python - 在 Python 中使用 scikit learn 进行线性判别分析

python - 如何在Python中从音频生成这种波形?

vb.net - 您如何导航 XML?

python - 写入 csv 文件 scrapy

python - Mongo find 中 int 到 float 的转换

python - sqlite3 数据类型中的拼写错误但仍然有效,为什么?

java - 按钮 ng 下拉-如何使用 webdriver 和 java 选择项目

xml - 如何获取具有最小属性值的节点?

python - 如何使用scrapy和django并上传到heroku

python - Scrapy 单元测试