2016-08-08 53 views
-1

Gibt es eine Möglichkeit, das volle href-Attribut (https://studyacer.com/question/audit-and-assurance-services-444592) anstelle eines partiellen href zu erhalten? (https://studyacer.com/question/audit-and-) von diesem Markup?Entschlüsseln Sie diesen XPath-Ausdruck, um das volle href-Attribut zu erhalten

<td class="word-break"> 
    <span class="label label-success">Due in 5 days</span> 
    <a href="https://studyacer.com/question/hey-greg-here-is-my-hrm522-discussion-444593"> 
     <strong>hey Greg here is my HRM522 discussion</strong></a> 
    <small>&quot;Auditing of Organizational Ethics and Compliance Programs&quot; Please respond to the following:... 
    </small> 
    <br /> 
    <strong>Business > Management</strong> 
</td> 

Der XPath-Ausdruck ich habe, ist diese '// td [@ class = "word-break"]/a/@ href', und es gibt mir nur eine partielle URL. Die Website verwendet absolute URLs (wenn das hilft).

Bearbeiten: Ich verwende Scrapy, um einen grundlegenden Crawler zu implementieren. Wenn ich renne

response.xpath('//td[@class="word-break"]/a/@href') 

bekomme ich die partielle URL.

+0

Willkommen zu SO :-) Der Wert muss durch einige Werkzeuge, die Sie verwenden, abgeschnitten werden, es gibt nichts im Xpath, das es grundsätzlich abschneiden würde und so nichts auf Ihrer Seite, das zu ändern. Sie könnten (indem Sie auf "Bearbeiten" klicken) Informationen über Ihre Werkzeuge zur Frage hinzufügen und an welcher Position Sie den abgeschnittenen Wert finden ... –

+0

@stefanHegny Vielen Dank für die Begrüßung! Ich implementierte einen Basis-Crawler mit Scrapy. Und Sie haben recht, es ist das Scrapy-Tool, das den vollen Wert abschneidet. –

Antwort

0

Für alle mit einem ähnlichen Problem. Es stellte sich heraus, dass

response.xpath('xpath_expression') 

gibt Ihnen eine partielle URL in Scrapy läuft. Vor allem, wenn die URL eine lange ist. Für den vollen Wert verwenden Sie extract() am Ende. So ist das