如何使用scrapy从python中的p标签中获取文本?

时间:2017-10-10 09:15:17

标签: python-2.7 scrapy

<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> CVCME@mayo.edu 
   </p> 
</div> 

如何从上面的代码获取2017年10月8日的textvalue?我试过这段代码:

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

但是我得到了这样的输出&#34;开始日期&#34;。

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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