2017-11-12 3 views
0

Das Ziel dieser Mission ist das Extrahieren der "href" über die Titel der These in einer Suchergebnisseite eines IR, und machen Sie sie als Datenrahmen. Diese Ergebnisseite ist nicht gut strukturiert: Titel des Papiers, Ausgabeinformationen, Autoren und Download-Button befinden sich im selben Feld, nur getrennt nach "span" (zwischen "title", "issue" und "authors") und " sup "(innen" Autoren ").Attribute von ähnlichen Knoten in OpenIR extrahieren

results<-"http://ir.las.ac.cn/handle/12502/8473/browse?type=dateissued" 
library(rvest) 
resultsource <- read_html(results) 
itemLine <- html_node(resultsource, xpath ='//tr[@class="itemLine"]') 
# gether labels and values of item metadata in miscTable2 
titleLine <- html_nodes(itemLine, xpath ='//span/a[@href][@target]') 
titlehref <- xml_attrs(titleLine, "href") 
resultstxt <- html_text(titleLine, trim = TRUE) 

Das Programm läuft über, ohne Fehler, aber die „titleLine“ hat viele redundance und „titlehref“ nur einen Wettbewerb haben als ‚Klasse ‚itemLine‘‘, aber überhaupt keine URLs. Meine Fragen sind:

  1. Wie können wir die href des Papiertitels genau lokalisieren? Ich verwende eine zweite Ebene von "html_nodes", um alle Ziel-href zu speichern. Allerdings sind die "href" s unter "sup" Label noch in der "titleLine", und das "Ziel" auch. Können wir "target" -Attribut für die Suche nach dem richtigen "href" verwenden, aber lassen Sie sie nicht in "titleLine" erscheinen?
  2. Wie können wir Attribute mit komplexen "Wert" finden? im Programm oben verwende ich nur "href". Ich habe versucht, "xpath style" vor aber keine Hilfe zu verwenden. Ich möchte Namensraum verwenden, um die URL der Papiere zu identifizieren, aber ich sah, dass vielleicht nur aus „xmlns“ -Attribut extrahieren ns und konnte nicht Zuordnung manuell (wie titlehref <- xml_attrs(titleLine, "href", ns=”http://ir.las.ac.cn/handle”))

Wie die Struktur passen diese IR kann die richtigen Ergebnisse erhalten? Danke vielmals.

Antwort

0

Sie indizieren kann die gewünschte <span> Ziel sowie die <td>

library(rvest) 

pg <- read_html("http://ir.las.ac.cn/handle/12502/8473/browse?type=dateissued") 

html_nodes(pg, xpath=".//tr[@class='itemLine']/td[2]/span[1]/a") %>% 
    html_text() 
## [1] "Data-driven Discovery: A New Era of Exploiting the Literature and Data"                      
## [2] "Contents Index to Volume 1"                                 
## [3] "Topic Detection Based on Weak Tie Analysis: A Case Study of LIS Research"                      
## [4] "Open Peer Review in Scientific Publishing: A Web Mining Study of <i>PeerJ</i> Authors and Reviewers"               
## [5] "Mapping Diversity of Publication Patterns in the Social Sciences and Humanities: An Approach Making Use of Fuzzy Cluster Analysis"        
## [6] "Under-reporting of Adverse Events in the Biomedical Literature"                        
## [7] "Predictive Characteristics of Co-authorship Networks: Comparing the Unweighted, Weighted, and Bipartite Cases"             
## [8] "International Conference on Scientometrics & Informetrics October16-20, 2017, Wuhan · China"                 
## [9] "Identification and Analysis of Multi-tasking Product Information Search Sessions with Query Logs"                
## [10] "The 1<sup>st</sup> International Conference on Datadriven Knowledge Discovery: When Data Science Meets Information Science. June 19-22, 2016, Beijing · China" 
## [11] "The Power-weakness Ratios (PWR) as a Journal Indicator: Testing the “Tournaments” Metaphor in Citation Impact Studies"           
## [12] "Document Type Profiles in <i>Nature, Science</i>, and <i>PNAS</i>: Journal and Country Level"                 
## [13] "Can Automatic Classification Help to Increase Accuracy in Data Collection?"                     
## [14] "Knowledge Representation in Patient Safety Reporting: An Ontological Approach"                     
## [15] "Information Science Roles in the Emerging Field of Data Science"                        
## [16] "Data Science Altmetrics"                                  
## [17] "Comparative Study of Trace Metrics between Bibliometrics and Patentometrics"                     
## [18] "Identifying Scientific Project-generated Data Citation from Full-text Articles: An Investigation of TCGA Data Citation"          
## [19] "Mining Related Articles for Automatic Journal Cataloging"                          
## [20] "Critical Factors for Personal Cloud Storage Adoption in ChinaCritical Factors for Personal Cloud Storage Adoption in China" 

Die HTML-Tags in ^^ wie "` ..." sind Fehler an ihrem Ende (sie im gerenderten Browser-Ansicht angezeigt werden, auch) . Ich denke, jemand an ihrem Ende ging zu weit in der XSS-Prävention.

+0

Es ist seltsam, dass die Antwort, die Sie posten, die früheste ist, aber sie erschien zuletzt. Ich habe gelernt, eines der ähnlichen Elemente in einem Knoten aus Ihrer Antwort zu finden. Danke vielmals. Aber wenn ich es modifiziere, um die URLs von Papieren zu extrahieren, enthalten die Ergebnisse ein anderes nicht verwandtes Attribut "Ziel", selbst wenn ich das Attribut als "href" zugewiesen hätte: itemu <-html_nodes (pg, xpath = ".// tr [@class = 'itemLine']/td [2]/span [1]/a [@href] ")%>% html_attrs() Wenn ich die" [@href] "in fuction" html_attrs() "verschiebe, ein Fehler tritt auf. Das bedeutet, dass die Pipe eines der Attribute nicht übertragen konnte? Vielen Dank. –

0

Versuchen Sie dies.

library(rvest) 
url<-"http://ir.las.ac.cn/handle/12502/8473/browse?type=dateissued" 
page<-html_session(url) 

# DATA EXTRACTION 
title<-html_nodes(page,css="strong") %>% html_text() 
title<-title[5:length(title)] 
download_link<-html_nodes(page, css= "span:nth-child(7) a+ a") %>% html_attr("href") 
issue_information<-html_nodes(page, css= "i") %>% html_text() 
authors<-html_nodes(page,css=".itemLine span:nth-child(5)") %>% html_text() 

# CONVERT TO DATA FRAME 
k<-data.frame(title,download_link,issue_information,authors) 

Führen Sie den Code auf jeder Seite aus, um den vollständigen Datenrahmen zu erhalten.

Um verschiedene Elemente zu finden, habe ich "SELECTOR GADGET" Chrome hinzugefügt und dann im Code verwendet.

+0

Entschuldigung, wo können wir weitere Anweisungen zu "CSS selector" im "xml2" Paket bekommen? Ist diese Technologie eine allgemeine Technologie in allen Webanalyse-Tools und Browsern? Danke vielmals. –

+0

Menschen verwenden SELECTOR GADGET häufiger für das Webscraping. Sie finden sie hier: https://chrome.google.com/webstore/detail/selectorgadget/mhjhnkcfbdhnhickkkdbjoemdbfginb?hl=en – Bharath

+0

Hat der von mir bereitgestellte Code für Sie funktioniert? – Bharath

Verwandte Themen