簡體   English   中英

使用Scrapy在Python中挑選部分文本字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM