使用RVest网络抓取html元素时出现问题

时间:2020-08-09 01:09:45

标签: r web-scraping rvest

我正在尝试提取在政府采购中提供其产品/服务的公司的名称以及其他要素。 (与其他人没有问题。)

元素出现在带有class="BusinessCardCompanyName"的表中。

这些元素唯一奇怪的是onclick属性。如果元素触发事件,我将无法提取内容。

enter image description here

第一个元素的HTML

<td class="BusinessCardContentCell">
  <a class="BusinessCardCompanyName Pointer" 
   onclick="createAndOpenSupportModal({modalId:'BusinessCardWindow996457837', showTitle: true, cssClass:'bModal VortalModalDialog', modalHeight:600, modalWidth:1000, supportOptions: {windowURL: 'https://comunidad.comprasdominicana.gob.do/Directory/CompanyProfiles/DynamicMyCompanyProfile/ViewProfile?CompanyCode=700644024&amp;isConfirmRegistration=true' + '&amp;' + 'isModal=' + 'true' + '&amp;asPopupView=true', modalOptions: {scrollBar: false, escClose: false, modalClose: true, iframeScrollbar: true, closeClass: 'bClose'}, windowName: 'BusinessCardWindow996457837_iframe'}});"
>Guival Medical, SRL</a>
<br>
<br>
<span class="BusinessCardText"></span>
<div title="No hay datos suficientes para mostrar una clasificación de esta entidad" name="VB_">
<img src="https://comunidad.comprasdominicana.gob.do/StaticContent/Images/empty_star.png_v636868517519279829" height="15">
<img src="https://comunidad.comprasdominicana.gob.do/StaticContent/Images/empty_star.png_v636868517519279829" height="15">
<img src="https://comunidad.comprasdominicana.gob.do/StaticContent/Images/empty_star.png_v636868517519279829" height="15">
<img src="https://comunidad.comprasdominicana.gob.do/StaticContent/Images/empty_star.png_v636868517519279829" height="15">
<img src="https://comunidad.comprasdominicana.gob.do/StaticContent/Images/empty_star.png_v636868517519279829" height="15">
</div>
</td>

到目前为止,我尝试在html_nodes()中使用不同的选择器,例如:.BusinessCardCompanyName.BusinessCardContentCell a等。

代码

library(rvest)
library(dplyr)

url <- "https://comunidad.comprasdominicana.gob.do//Public/Tendering/OpportunityDetail/Index?noticeUID=DO1.NTC.700904"

read_html(url) %>%
  html_nodes(".BusinessCardCompanyName") %>%
  html_text()

有效的代码

read_html(url) %>%
    html_nodes("#cbxBasePriceValue") %>% 
    html_text() %>% 
    readr::parse_number()

1 个答案:

答案 0 :(得分:1)

此页面确实使用了一些JavaScript来呈现页面,因此rvest可能不是最好的工具,具体取决于您要查找的信息。 我能够提取一些信息。这可能会为您提供一个起点。

android:noHistory="false"