如何使用Xpath选择第二个<p>元素

时间:2016-04-01 09:30:56

标签: xpath rselenium

我正试图从this网页上抓取全部评论。 (完整评论 - 点击&#39;阅读更多&#39;按钮后)。我正在使用RSelenium。我可以使用代码

从第一个<p>元素中选择和提取文本
reviewNodes <- mybrowser$findElements(using = 'xpath', "//p[@id][1]")

用于较少的文本审查。

但无法使用代码

提取全文评论
reviewNodes <- mybrowser$findElements(using = 'xpath', "//p[@id][2]")

reviewNodes <- mybrowser$findElements(using = 'xpath', "//p[@itemprop = 'reviewBody']")

显示空白列表元素。我不知道出了什么问题。请帮帮我..

2 个答案:

答案 0 :(得分:0)

删除双斜杠并尝试使用显式class Job(models.Model): customer = models.ForeignKey(User, related_name='customer') translator = models.ForeignKey(User, related_name='freelancer',null=True) description = models.TextField() language_tuple = models.ForeignKey(LanguageTuple,related_name='language_tuple') created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) is_active = models.BooleanField(default=False) has_translator = # If translator is not None/Null, then True else False 轴:

descendant

(参见我在this answer中提到的关于XPath的W3C文档的说明)

答案 1 :(得分:0)

在处理列表时,您应首先找到列表项,例如使用CSS选择器

div.srm

根据这些元素,您可以在列表项内搜索,例如使用CSS选择器

p[itemprop='reviewBody']

当然你也可以用一个单独的表达方式来做,但这不是那么整洁的imho:

div.srm p[itemprop='reviewBody']

或者在XPath中(我不推荐):

//div[@class='srm']//p[@itemprop='reviewBody']

如果这些都不适合你,那么问题必定在其他地方。