Как это сделать, когда соскоб с использованием xpath не дает результата - PullRequest
1 голос
/ 22 марта 2020

Я использовал python3 .8 и его модуль-urllib.

Моя цель - получить текст

"" "Dapps, созданных для 50 миллионов пользователей - 8 случаев, которые вы должны знать о ICON" ""

из html ниже .

<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» не дает мне никакого результата.

Самый разыскиваемый вопрос - Как я могу получить текст?

А второстепенный вопрос - Почему нет? 't' xpath-2 'даст мне результат?

Вот URL: https://www.dapp.com/community

Спасибо, ребята, за ответы заранее.

XML Data

1 Ответ

0 голосов
/ 22 марта 2020

Вы должны go глубже, чтобы получить текст. Если вам нужен только первый заголовок:

(//div[@class="article-sec"]//div[@class="name"])[1]/text()

Если вам нужны все заголовки:

//div[@class="article-sec"]//div[@class="name"][1]/text()

РЕДАКТИРОВАТЬ: без Selenium, в R вы можете сделать что-то вроде:

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":").+?(?=")'))

Вывод:

R Titles

В противном случае просто получите json, расположенный в теге сценария (type = text / javascript) веб-страницы и проанализируйте ее с помощью соответствующего инструмента:

Json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...