[英]Pick out part of text field in Python with Scrapy
使用Scrapy構建了一個Web刮刀。 這是我想要提取的內容:
Friday March 14, 2014
當我抓住這個div中的內容時(它不是段落標簽或任何我可以更具體的內容)使用這個:
item['published'] = hxs.select('//div[@class="date"]/text()').extract()
而這就是我得到的:
\n \n Last Updated: Friday, March 14, 2014 \n ", "\n ", "\n \n ", "\n ", "\n", " \n
那么在這個例子中,如何在星期五之前和2014年之后拋棄一切? 我花了幾個小時玩一些正則表達式,但是對於我的生活似乎無法找到一個很好的例子,說明在處理字母而不是數字時如何做到這一點,或者更糟糕的是,沒有涉及精確空間和范圍的事情因為有時它會說“最近更新:”,有時會說“更新:”,這讓我處於一個看似不尋常的地方。
您可以使用正則表達式從字符串中提取日期,例如:
>>> import re
>>> s = '\n \n Last Updated: Friday, March 14, 2014 \n ", "\n '
>>> re.search('Updated: ([\w, ]+)', s).group(1).strip()
'Friday, March 14, 2014'
其中([\\w, ]+)
是一個匹配1個或多個字母數字字符(和_
),逗號或空格的保存組。
希望有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.