xpath中title. Contains("xxxx")
时间: 2023-12-24 17:40:02 浏览: 20
在XPath中,使用`contains()`函数可以检查给定的字符串是否包含在目标元素的文本中。如果要检查`title`元素的文本是否包含特定的字符串,可以使用以下XPath表达式:
```
//title[contains(text(), "xxxx")]
```
在这个表达式中,`//title`表示选择所有名为`title`的元素,`contains(text(), "xxxx")`表示检查该元素的文本是否包含字符串"xxxx"。你可以将"xxxx"替换为你想要查找的具体字符串。
相关问题
# 获取文字标题 item["text_title"] = li.xpath("./a/text()")[0] if li.xpath("./a/text()") __(4)__ None # 获取发布日期 item["text_date"] = li.xpath("./span/text()")[0] if li.xpath("./span/text()") __(4)__ None
这段代码中的两个空格需要填写相应的 Python 代码,使得代码能够正确获取新闻标题和发布日期。由于标题和日期可能不存在,所以需要进行判断。因此,正确的代码应该是:
```
item["text_title"] = li.xpath("./a/text()")[0] if li.xpath("./a/text()") else None
item["text_date"] = li.xpath("./span/text()")[0] if li.xpath("./span/text()") else None
```
其中,`if li.xpath("./a/text()")` 的意思是如果 `li.xpath("./a/text()")` 不为空,则返回第一个元素,否则返回 `None`。`if li.xpath("./span/text()")` 的意思是如果 `li.xpath("./span/text()")` 不为空,则返回第一个元素,否则返回 `None`。
xpath定位中./和//定位的区别
XPath 中的 `./` 和 `//` 都是用来定位元素的,二者的区别在于定位的起点不同。
- `./` :表示从当前节点开始查找,即当前节点下的子节点。
- `//` :表示在整个文档中查找,即不论当前节点在文档中的位置,都会从文档的根节点开始查找。
举个例子,假设我们有以下 HTML 代码:
```html
<div id="parent">
<p>第一个段落</p>
<p>第二个段落</p>
<div>
<p>第三个段落</p>
</div>
</div>
```
如果我们要定位第一个段落的元素,可以使用以下两种方式:
- 使用 `./` :
```xpath
./p[1]
```
这个 XPath 表达式表示从当前节点(即 `div` 元素)开始查找子节点中的第一个 `p` 元素。
- 使用 `//` :
```xpath
//p[1]
```
这个 XPath 表达式表示在整个文档中查找第一个 `p` 元素。
因此,二者的区别在于定位的起点不同,使用 `./` 表示从当前节点开始查找,使用 `//` 表示在整个文档中查找。