2016-08-08 1 views
-1

Existe-t-il un moyen d'obtenir l'attribut href complet (https://studyacer.com/question/audit-and-assurance-services-444592) au lieu d'un href partiel? (https://studyacer.com/question/audit-and-) à partir de ce balisage?Déchiffrer cette expression XPath pour obtenir l'attribut href complet

<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> 

L'expression XPath J'est ce '// td [@ class = "mot-break"]/a/@ href' et il est juste de me donner une URL partielle. Le site utilise des URL absolues (si cela vous aide).

Editer: J'utilise Scrapy pour implémenter un crawler de base. Quand je cours

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

Je reçois l'URL partielle.

+0

Bienvenue SO :-) La valeur doit être tronquée par certains outils que vous utilisez, il n'y a rien dans le XPath qui tronquer principalement et donc rien de votre côté pour changer cela. Vous pourriez (en cliquant sur "modifier") ajouter des informations sur votre outil (s) à la question et à quelle position vous trouvez la valeur tronquée ... –

+0

@stefanHegny Merci pour l'accueil! Je mettais en application un crawler de base utilisant Scrapy. Et vous avez raison, c'est l'outil Scrapy qui tronque la valeur complète. –

Répondre

0

Pour toute personne ayant un problème similaire. Il s'avère que l'exécution

response.xpath('xpath_expression') 

vous donne une URL partielle Scrapy. Surtout si l'url est longue. Pour la valeur complète, utilisez extract() à la fin. Comme cette

response.xpath('xpath_expression').extract()