2017-10-10 281 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> 

如何獲取2017年10月8日textvalue從上面的代碼?我想這樣的代碼:如何在python中使用scrapy從p標籤中獲取文本?

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

但是我卻越來越喜歡這個「開始日期」的輸出。

任何人都可以幫忙嗎?

+0

錯別字,風格和代碼亮點 – tchap

回答

1

如果你不使用CSS堅持,你可以使用XPath得到這樣的:

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

編輯: 另外,同樣使用CSS:

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

@ Linhart ..它工作...非常感謝你...只是想知道......我們可以通過使用CSS得到嗎? –

+0

請參閱編輯。我只是更喜歡使用XPath作爲恕我直言,這是更強大的工具。 –

+0

,但以同樣的方式我試圖得到「2017年10月11日」。通過應用代碼「response.css('div.date_info p:nth-​​child(1):: text')。extract()[2] .strip()」..我得到o/p像這樣'' ..pls幫助我獲得「2017年10月11日」.. –

0

待辦事項此,請注意*運營商*::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 
相關問題