2017-10-10 25 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 
相关问题