【发布时间】:2020-12-01 17:12:54
【问题描述】:
我想提取新闻文章在网站上发布的日期。对于某些网站,我有确切的 html 元素,其中日期/时间是 (div, p, time) 但在某些网站上我没有:
这些是一些网站(德国网站)的链接:
(2020 年 11 月 3 日) http://www.linden.ch/de/aktuelles/aktuellesinformationen/?action=showinfo&info_id=1074226
(2020 年 12 月 1 日)http://www.reutigen.ch/de/aktuelles/aktuellesinformationen/welcome.php?action=showinfo&info_id=1066837&ls=0&sq=&kategorie_id=&date_from=&date_to=
(2020 年 10 月 22 日)http://buchholterberg.ch/de/Gemeinde/Information/News/Newsmeldung?filterCategory=22&newsid=905
我已经使用 Python 库尝试了 3 种不同的解决方案,例如 requests、htmldate 和 date_guesser,但我总是没有得到任何结果,或者在使用 htmldate 库的情况下,我总是得到相同的日期 (2020.1. 1)
from bs4 import BeautifulSoup
import requests
from htmldate import find_date
from date_guesser import guess_date, Accuracy
# Lib find_date
url = "http://www.linden.ch/de/aktuelles/aktuellesinformationen/?action=showinfo&info_id=1074226"
response = requests.get(url)
my_date = find_date(response.content, extensive_search=True)
print(my_date, '\n')
# Lib guess_date
url = "http://www.linden.ch/de/aktuelles/aktuellesinformationen/?action=showinfo&info_id=1074226"
my_date = guess_date(url=url, html=requests.get(url).text)
print(my_date.date, '\n')
# Lib Requests # I DO NOT GET last modified TAG
my_date = requests.head('http://www.linden.ch/de/aktuelles/aktuellesinformationen/?action=showinfo&info_id=1074226')
print(my_date.headers, '\n')
我是不是做错了什么?
你能告诉我有没有办法从这样的网站(我没有特定的 div、p 和 datetime 元素)中提取发布日期。
重要! 我想进行通用日期提取,以便我可以将这些链接放入 for 循环并对其运行相同的功能。
【问题讨论】:
-
通用日期提取是什么意思?
-
从一些新闻文章文本中提取日期,但要为此编写脚本,在所有网站上都可以正常工作
-
我不确定是否有任何模块可以从外语网站进行通用日期提取。我的答案的所有网址部分可以轻松修改以从任何网站提取日期。该答案中的一些项目可以通过一些额外的努力移动到一个函数甚至一个类中。
-
我相信我用我的回答解决了这个问题“提取新闻文章在网站上发布的日期”。如果您仍有问题,请告诉我,我会查看其他网站。
-
您的解决方案适用于这 3 个网站,我正在寻找适用于每个网站的解决方案。我正在寻找某种能够以任何格式检测日期的库
标签: python datetime web-scraping data-extraction