2017-10-10 2 views
0
<div class="date_info"> 
    <p> 
     <span> Start Date :</span> October 8, 2017 <br/> 
     <span> End Date :</span> October 11, 2017 <br/> 
     <span> Time : </span> 1:00 pm to 12:15 pm 
    </p> 
    <p> 
     <span> Phone :</span> 507 266 6703 <br/> 
     <span> Email :</span> [email protected] 
    </p> 
</div> 

comment obtenir le texte du 8 octobre 2017 à partir du code ci-dessus? J'ai essayé ce code:comment extraire du texte de p tags en python en utilisant scrapy?

response.css('div.date_info p:nth-child(1) span:nth-child(1)::text').extract() 

Mais je suis en train de sortie comme ça « Date de début ».

Quelqu'un peut-il aider?

+0

Typos, le style et le code en surbrillance – tchap

Répondre

1

Si vous n'insistez pas sur l'utilisation de CSS, vous pouvez l'obtenir avec XPath comme ceci:

date = response.xpath('//div[@class="date_info"]/p[1]/text()').extract()[1].strip() 

EDIT: Sinon, le même en utilisant le CSS:

date = response.css('div.date_info p:nth-child(1)::text').extract()[1].strip() 
+0

@ Linhart..il a travaillé ... Merci beaucoup ... je veux juste savoir..cant nous obtenons cela grâce à l'utilisation de CSS? –

+0

Voir la modification. Je préfère juste utiliser XPath comme IMHO c'est un outil beaucoup plus puissant. –

+0

mais de la même manière j'ai essayé pour obtenir "Octobre 11, 2017". en appliquant le code "response.css ('div.date_info p: nième-enfant (1) :: texte'). extract() [2] .strip()" .. je reçois o/p comme ceci '' ..pls m'aider à obtenir "Octobre 11, 2017" .. –

0

Do remarquez l'opérateur * dans *::text

for div in response.css("div.date_info > p"): 
    for span in p.css("span"): 
     " ".join(span .css("*::text").extract()) #here you have Start Date and End Date etc