【发布时间】:2018-11-27 06:22:52
【问题描述】:
我正在尝试从 Tripadvisor 那里为特定航空公司 Spicejet 抓取仅一年前的评论。 链接:https://www.tripadvisor.com/Airline_Review-d8728949-Reviews-or60-SpiceJet#REVIEWS
但是在存储评论的日期时存在不一致,因为有些评论在 span 类值中:<span class="ratingDate">
Reviewed October 22, 2018
</span>
还有一些在标题中:
<span class="ratingDate relativeDate" title="October 23, 2018">
Reviewed 5 weeks ago
</span>
我想提取日期并设置一个条件来提取只有一年前的评论。我在处理两种日期格式时遇到了困难,所以我应该如何比较它。
代码:
date = items.find(class_="ratingDate").get("title")
date = dt.strptime(date, "%B %d, %Y")
if (date > dt.strptime(('November 26 2017'),"%B %d %Y")):
date = items.find('span', class_='ratingDate')['title']
输出:
“它可以管理”
('2018 年 10 月 23 日',)
<ipython-input-72-3d5de04a2794> in get_info()
6 for items in soup.find_all(class_="innerBubble"):
7 date = items.find(class_="ratingDate").get("title")
----> 8 date = dt.strptime(date, "%B %d, %Y")
9 if (date > dt.strptime(('November 26 2017'),"%B %d %Y")):
10 print("===========================================")
TypeError: strptime() argument 1 must be str, not None
【问题讨论】:
-
恭喜 - 你遇到了 CS 的乐趣之一:不一致的数据。如果您有一个具体的问题,请展示您的代码和数据 - 否则您需要在此处提问之前进行更多研究 - 因为您的问题过于宽泛。一个答案 f.e.可能是:将它们转换为相同的日期格式并进行比较。
-
您好!你能证明你至少尝试在问题中输入或输入你的代码吗?我们是来帮忙的,但我们必须在两者之间的某个地方见面!
-
您正在寻找一个日期解析器。我听说了关于 natty 的好消息。
-
您是否尝试过给出的任何答案?
标签: python web-scraping beautifulsoup