我正在使用lxml,我有一个来自Google学术搜索的报废页面.以下是一个最小的工作示例和我尝试过的事情.
In [56]: seed = "https://scholar.google.com/citations?view_op=search_authors&hl=en&mauthors=label:machine_learning"
In [60]: page = urllib2.urlopen(seed).read()
In [63]: tree = html.fromstring(page)
In [64]: xpath = '(/html/body/div[1]/div[4]/div[2]/div/span/button[2]/@onclick)[1]'
In [65]: tree.xpath(xpath)
#first element returns as list
Out[65]: ["window.location='/citations?view_op\\x3dsearch_authors\\x26hl\\x3den\\x26oe\\x3dASCII\\x26mauthors\\x3dlabel:machine_learning\\x26after_author\\x3dVCoCALPY_v8J\\x26astart\\x3d10'"]
In [66]: xpath = '(/html/body/div[1]/div[4]/div[2]/div/span/button[2]/@onclick)[2]'
#there is no second element
In [67]: tree.xpath(xpath)
Out[67]: []
In [70]: xpath = '(/html/body/div[1]/div[4]/div[2]/div/span/button[2]/@onclick)'
#The list contains only one element
In [71]: tree.xpath(xpath)
Out[71]: ["window.location='/citations?view_op\\x3dsearch_authors\\x26hl\\x3den\\x26oe\\x3dASCII\\x26mauthors\\x3dlabel:machine_learning\\x26after_author\\x3dVCoCALPY_v8J\\x26astart\\x3d10'"]
Run Code Online (Sandbox Code Playgroud)
根据此处的文档,返回值可以是智能字符串,但我无法从xpath函数获取字符串输出.如何编写xpath以便从xpath获取字符串输出
<span class="label label-danger" style="font-size : 13px; font-weight : 400;">Critical</span>
Run Code Online (Sandbox Code Playgroud)
下面是我使用的xpath:
.//tr[@data-index='0']/td/span
Run Code Online (Sandbox Code Playgroud)
我在上面的HTML源代码中有一行代码.所以,我使用了相应的Xpath和used getText()方法来获取文本,即Critical.我成功了.
但是,我在另一个页面中有另一行这样的.
<div class="col-xs-12">
<div id="project-update-success-information" class="panel-confirmation success" style="display: none;">
<span class="fa fa-check"/>
Project Updated
</div>
Run Code Online (Sandbox Code Playgroud)
下面是我使用的xpath: -
.//*[@id='project-update-success-information']/span
Run Code Online (Sandbox Code Playgroud)
我使用了相应的Xpath getText(),但不幸的是它没有为我检索文本.我怀疑</span>第二行中没有关闭标签导致问题.有没有其他方法来获取文本?
我想从Chrome浏览器中当前显示的HTML页面中检索数据。
例如:我想获取当前页面中显示的表的列数。
是否可以从Chrome控制台运行XQuery以获得此类信息?
当我们从控制台运行XPath以获得元素引用示例时:$x("//th")。
假设我有这个XML:
<body>
<div id="1"></div>
<a id = "1"></a>
<a id = "2"></a>
<a id = "3"></a>
<div id="2"></div>
<a id = "4"></a>
<a id = "5"></a>
<a id = "6"></a>
</body>
Run Code Online (Sandbox Code Playgroud)
给定该元素//div[id='1'],我该如何选择“它的” <a>元素(从1到3的ID),但要排除<a>ID为4或更高的元素,因为它们出现在<div id='2'>
元素是 <td>20175</td>
元素的Xpath是 //*[@id="body"]/table/tbody/tr[1]/td/table[2]/tbody/tr/td[2]/table/tbody/tr[4]/td[1]
我想参加20175年的一部分.
我试过了
elems = browser.find_elements_by_xpath("""//*[@id="body"]/table/tbody/tr[1]/td/table[2]/tbody/tr/td[2]/table/tbody/tr[4]/td[1]""")
print (elems)
Run Code Online (Sandbox Code Playgroud)
但它给了我的不是文本.
selenium.webdriver.remote.webelement.WebElement (session="77dc0a7bef8dadbf9aec1ddbab9e3a91", element="0.027053967816755176-1")>]
Run Code Online (Sandbox Code Playgroud) 在使用R(rvest)进行网页抓取时,我需要将XPATH值定义为html_nodes中的变量。这样我就可以遍历许多XPATH。当我在外部定义XPATH时,它会引发错误(例如,当xpath = // * [@ id =“ banner”]时会出现错误)。能否请你帮忙。我的代码:
xpath <- as.character('//*[@id="title-overview-widget"]')
name <- lego %>%
html_nodes(xpath) %>%
html_text()
Error Message : Error in tokenize(css) : Unexpected character '/' found at position 1
Run Code Online (Sandbox Code Playgroud) 如何在ruby代码中将字符串分成两行?有特定的符号吗?
def my_def
path = "//div/p[contains(., 'This is a veeeeeeeryyyyyy looooonggggg string')]"
end
Run Code Online (Sandbox Code Playgroud)
我希望做出类似的事情:
def my_def
path = "//div/p[contains(., 'This is a veeeeeeeryyyyyy
looooonggggg string')]"
end
Run Code Online (Sandbox Code Playgroud)
如何单击大小按钮并使用Selenium Web驱动程序和python将其添加到购物车?
这是下面的网站
请让我知道是否有什么我应该在此处粘贴与尺寸按钮有关的内容。
我需要点击"客户一"的链接.目前我正在使用
//div[contains(@class,'client-info') and contains(div/text(),'Customer')]
Run Code Online (Sandbox Code Playgroud)
使用Firepath,这将返回四个单独的元素(我附加了包含其中两个的代码),我认为这就是为什么Selenium Webdriver无法找到我想要单击的元素.
我需要单击此xpath的最后一个实例,但它似乎不可能更具体,因为它们具有相同的类和内部文本!
<div class="wg-client-row-mobile hidden-sm hidden-md hidden-lg">
<div class="row">
<div class="col-xs-11">
<span class="icon icon-user" ng-class="{'icon-user': !wgClientItemCtrl.client.isAnOrganization, 'icon-business': wgClientItemCtrl.client.isAnOrganization}"/>
<div class="client-info">
<div class="client-name not-long-text ng-binding">Customer One</div>
<!-- <div class="client-age not-long-text" ng-if="!wgClientItemCtrl.client.isAnOrganization">{{wgClientItemCtrl.client.gender}}, {{wgClientItemCtrl.client.calculatedAge | notAvailable}}</div> -->
<!-- ngIf: !wgClientItemCtrl.client.isAnOrganization -->
<div class="client-age not-long-text ng-binding ng-scope" ng-if="!wgClientItemCtrl.client.isAnOrganization">
<!-- end ngIf: !wgClientItemCtrl.client.isAnOrganization -->
<!-- ngIf: wgClientItemCtrl.client.isAnOrganization -->
<div class="client-age not-long-text ng-binding">
</div>
</div>
<div class="favorite-right-container">
</div>
</div>
<div class="wg-client-row-desktop hidden-xs hidden-is">
<div class="row content">
<div class="col-sm-4">
<div class="icon icon-user" …Run Code Online (Sandbox Code Playgroud) 我正忙着抓住一个按钮.是否有人能够指出我如何获得按钮处理的正确方向并使用xpath或css选择器单击它?这是代码:
<button class="trans-button mtrn-dialog-button" title="" value="">OK</button>
Run Code Online (Sandbox Code Playgroud)
我试图通过文字来获取它.它似乎工作正常(因为它可以找到元素),但它似乎不想将click事件提供给按钮