Je suis en train d'extraire tous les titres de cette mailing list lors de l'enregistrement combien de réponses chaque thread a.Scrapy ne peut pas identifier « tbody » et éléments « ul » comme indiqué par Firebug
Selon Firebug, XPath à l'<ul>
qui contient tous les titres est:
/html/corps/table [2]/tbody/tr 1/td [2]/Table/tbody/tr/td/ul
Cependant, si je coller ce directement dans Scrapy Shell, il donnera une liste vide:
scrapy shell http://seclists.org/fulldisclosure/2002/Jul/index.html
response.xpath('/html/body/table[2]/tbody/tr[1]/td[2]/table/tbody/tr/td/ul')
[]
Après quelques essais et erreurs (depuis que je n'a pas pu comprendre de la documentation de quelque façon à la liste des sous-éléments d'un sélecteur donné immédiat (s'il vous plaît laissez-les savoir si vous connaissez un), je me suis dit que l'élément « tbody » ne fonctionne pas sur XPath. En les supprimant, j'ai pu naviguer jusqu'à /td
:
almost_email_threads = response.xpath('/html/body/table[2]/tr[1]/td[2]/table/tr/td')
Cependant, si je tente maintenant d'atteindre « ul » ça ne marchera pas:
email_threads.xpath('/ul')
[]
Maintenant, ce qui me confond le plus est que la course:
response.xpath('/html/body/table[2]/tr[1]/td[2]/table/tr/td//ul')
va me donner les années ul, mais pas dans le même ordre que celui figurant sur le site. Il saute des discussions et dans des ordres différents. En outre, il semble impossible de pouvoir compter le nombre de réponses par fil.
Qu'est-ce qui me manque ici? Cela fait un moment que je l'ai utilisé Scrapy, mais je ne me souviens pas d'être ce difficile à comprendre, et des tutoriels pour quelque raison que ce ne tirez pas soit sur Bing ou Google pour moi.
Merci. Cela semble fonctionner ici. Je vais attendre pour voir si quelqu'un connaît la réponse à la façon de la liste des sélecteurs sur Spacy ou si vous voulez basculer dans tout autre conseil, sinon je vais accepter votre réponse ici. J'ai aussi voté pour votre réponse. Savez-vous pourquoi ma question et votre réponse ont été rejetées? Il est difficile d'améliorer quand ils ne commentent pas améliorer au lieu de downvoting plaine .. –
J'ai mis à jour la réponse à vous montrer comment obtenir le nombre de réponses et les enfants d'un sélecteur.En ce qui concerne le vote négatif de votre question, je ne peux que spéculer; on pourrait soutenir qu'il ne contient aucun exemple de MCV et au moins une erreur de formatage. Jetez un oeil à http://stackoverflow.com/help/how-to-ask pourrait vous aider. Mais je pense qu'il est tout simplement impoli de downvote sans donner de commentaire explicatif. – Markus
Merci beaucoup. J'ai accepté votre réponse. –