python-3.x - 将数据刮取为
问题描述
解决方案
您可以使用xpath
选择器完成此操作:
'//p[contains(b/text(),"Contre-indications")]/following-sibling::ul[1]/li/text()'
解释 xpath:
//p
- 选择所有段落节点
[contains(b/text(),"Contre-indications")]
- 在子节点 b 的文本中包含一些文本
//following-sibling::ul[1]
- 选择第一个无序列表类型的段落节点的兄弟。
//li/text()
- 选择作为列表节点的任何子节点的文本
如果你在 scrapy shell 中运行它:
$ scrapy shell
> body = ...
> from parsel import Selector
> sel = Selector(text=body)
> sel.xpath('//p[contains(b/text(),"Indication")]/following-sibling::ul[1]/li/text()').extract()
['dissolution des calculs urinaires de struvite', 'gestion des récidives d’urolithiase à struvite et à oxalate de calcium dans un seul aliment']
> sel.xpath('//p[contains(b/text(),"Contre-indications")]/following-sibling::ul[1]/li/text()').extract()
['insuffisance rénale chronique, acidose métabolique', "traitement avec des médicaments acidifiant l'urine", 'lactation, gestation, croissance']
推荐阅读
- python - 我无法在 Atom 文本编辑器中导入使用 Anaconda Prompt 安装的模块。Miniconda 是否会导致 pip 出现问题?
- javascript - 调试此 Google 展示广告 javascript
- c# - C# 从字节数组中获取第一个 2 个整数
- javascript - jQuery检查集合中的一项是否具有价值
- awk - 匹配两个文件中的值并替换列中的值
- delphi - 异常消息来自哪里?
- java - 如何使用 XMLStreamWriter/IndentingXMLStreamWriter 将“而不是”写入 XML 输出
- mysql - SQL 查询未按预期返回
- iframe - 在跨域 iframe 消息中正确预防 XSS
- ocaml - 给定OCaml中的条件,递归地从列表中删除元素?