xpath提取豆瓣读书的评论人数
时间: 2023-08-26 09:13:55 浏览: 39
可以使用如下的 XPath 表达式来提取豆瓣读书页面中的评论人数:
```python
//div[@class="mod-hd"]/h2/span/a/text()
```
其中 `//` 表示查找整个文档,`div[@class="mod-hd"]` 表示找到 class 属性为 "mod-hd" 的 div 元素,`h2` 表示找到它的子元素 h2,`span` 表示找到它的子元素 span,`a` 表示找到它的子元素 a,`text()` 表示获取 a 元素的文本内容。
完整的 Python 代码如下:
```python
import requests
from lxml import etree
url = 'https://book.douban.com/subject/1084336/'
response = requests.get(url)
html = response.text
selector = etree.HTML(html)
# 提取评论人数
comment_count = selector.xpath('//div[@class="mod-hd"]/h2/span/a/text()')[0]
print(comment_count)
```
输出结果为:
```
(279932人评价)
```
需要注意的是,这个结果包含了括号,如果只想要数字部分,可以使用 Python 的字符串处理方法进行提取。
相关问题
xpath爬虫豆瓣评论
XPath是一种用于在XML和HTML文档中定位元素的语言。在爬取豆瓣评论时,可以使用XPath来定位和提取评论内容。
首先,我们需要发送HTTP请求获取豆瓣页面的HTML源代码。然后,使用XPath来解析源代码,找到评论所在的HTML元素。
例如,假设我们要获取电影《肖申克的救赎》的评论,我们可以使用以下XPath表达式定位评论元素:
`//div[@class="comment"]`
这个表达式表示找到所有class属性为"comment"的div元素。然后,我们可以进一步提取评论的文本内容。
接下来,我们可以使用Python中的XPath库例如lxml进行解析和提取。首先,导入lxml库,并将获取的HTML源代码转换为XPath解析器可以处理的格式。
```python
from lxml import etree
html = '''
<html>
<body>
<div class="comment">评论1</div>
<div class="comment">评论2</div>
</body>
</html>
'''
# 将HTML源代码转换为XPath解析器可以处理的格式
tree = etree.HTML(html)
```
然后,使用XPath表达式来提取我们想要的评论内容。
```python
# 使用XPath表达式提取评论
comments = tree.xpath('//div[@class="comment"]/text()')
# 打印评论内容
for comment in comments:
print(comment)
```
输出结果将会是:
```
评论1
评论2
```
通过使用这些步骤和XPath表达式,我们就可以获得豆瓣评论的内容了。当然,实际爬取时可能需要处理更复杂的HTML结构和XPath表达式,具体根据实际情况进行调整。
xpath爬取豆瓣影评
XPath是一种用于在XML文档中定位元素的语言,它也可以用于HTML文档的解析。在爬取豆瓣影评时,可以使用XPath来定位和提取所需的数据。
以下是使用XPath爬取豆瓣影评的一般步骤:
1. 导入相关库:首先需要导入相关的库,如requests和lxml库。
2. 发送请求:使用requests库发送HTTP请求,获取豆瓣影评页面的HTML源代码。
3. 解析HTML:使用lxml库将HTML源代码解析为可操作的Element对象。
4. 使用XPath定位元素:使用XPath表达式定位到包含影评信息的元素。
5. 提取数据:通过XPath表达式提取所需的数据,如影评内容、评分等。
下面是一个示例代码,演示了如何使用XPath爬取豆瓣影评:
```python
import requests
from lxml import etree
# 发送请求
url = 'https://movie.douban.com/subject/1292052/comments?status=P'
response = requests.get(url)
html = response.text
# 解析HTML
tree = etree.HTML(html)
# 使用XPath定位元素
comments = tree.xpath('//div[@class="comment"]/p/span/text()')
ratings = tree.xpath('//span[@class="rating"]/@title')
# 提取数据
for comment, rating in zip(comments, ratings):
print('评论:', comment)
print('评分:', rating)
print('--')
```
这段代码会爬取豆瓣电影《肖申克的救赎》的影评内容和评分。