首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用xpath进行抓取时,我如何做?没有结果。

当使用xpath进行抓取时,我如何做?没有结果。
EN

Stack Overflow用户
提问于 2020-03-22 13:38:49
回答 1查看 177关注 0票数 1

我一直在使用python3.8及其模块-urllib。

我的目标是拿到短信

“为5000万用户而建的Dapps--你应该知道8种情况下的图标”

从下面的html。

代码语言:javascript
复制
<div class="article-sec" data-v-727113bd="">
 <div data-v-3b154919="" data-v-727113bd="" class="item item">
  <a data-v-3b154919="" href="/article/dapp-com-list-icon" target="_blank">
    <div data-v-3b154919="" class="image" style="background-image: url(&quot;https://dappimg.com/media/image/article/1fe42da2f8ca44dab2884690624ecfa7.jpg&quot;);"></div>
    <div data-v-3b154919="" class="combine-info">
      <div data-v-3b154919="" class="name">Dapps Built for 50 Million Users - 8 Cases You Should Know about ICON</div>
    </div>
    <div data-v-3b154919="" class="time">Mar 18 · 1220 Views</div>
  </a>
 </div>

xpath-1 : xpath('//div[@class="article-sec"]')
xpath-2 : xpath('//div[@class="article-sec"]/div')

“xpath-1”给了我一个元素。但是“xpath-2”没有给我任何结果。

最想问的问题是我怎样才能拿到短信?

第二个问题是为什么'xpath-2‘不给我一个结果?

这是网址:https://www.dapp.com/community

谢谢你们提前给我答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-22 19:22:38

你必须走得更深才能拿到短信。如果你只想要第一个标题:

代码语言:javascript
复制
(//div[@class="article-sec"]//div[@class="name"])[1]/text()

如果你想要所有的标题:

代码语言:javascript
复制
//div[@class="article-sec"]//div[@class="name"][1]/text()

编辑:没有Selenium,在R中,您可以执行以下操作:

代码语言:javascript
复制
library(RCurl)
library(XML)
library(stringr)
page=getURL("https://www.dapp.com/community")
parse=htmlParse(page)
titles=xpathSApply(parse,"//div[@id='__nuxt']/following::script[@type]",xmlValue)
result=unlist(str_extract_all(gsub(',"influencers.*','',titles),'(?<="title":").+?(?=")'))

产出:

否则,只需将json定位在网页的脚本标记(type = text/javascript)中,并使用适当的工具解析它:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60800032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档