[Fix] Startpage ValueError on Spanish date format
datetime.parser.parse() does not know the Spanish date format which
leads to a ValueError. Fixes #1870
Traceback (most recent call last):
File "/usr/local/searx/searx/search.py", line 160, in search_one_http_request_safe
search_results = search_one_http_request(engine, query, request_params)
File "/usr/local/searx/searx/search.py", line 97, in search_one_http_request
return engine.response(response)
File "/usr/local/searx/searx/engines/startpage.py", line 102, in response
published_date = parser.parse(date_string, dayfirst=True)
File "/usr/local/searx/searx-ve/lib/python3.6/site-packages/dateutil/parser/_parser.py", line 1358, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "/usr/local/searx/searx-ve/lib/python3.6/site-packages/dateutil/parser/_parser.py", line 649, in parse
raise ValueError("Unknown string format:", timestr)
ValueError: ('Unknown string format:', '24 Ene 2013')
commit4f90fb6a9236a9699e80c249153ba372bf308cb8
authorSpühler Stefan <git@tuxli.ch>
dateMon 2 Mar 2020, 18:55 (7 years ago)
parent6a3ef55
searx/engines/startpage.py+5−2
@@ -99,11 +99,14 @@ def response(resp):
9999 if re.match(r"^([1-9]|[1-2][0-9]|3[0-1]) [A-Z][a-z]{2} [0-9]{4} \.\.\. ", content):
100100 date_pos = content.find('...') + 4
101101 date_string = content[0:date_pos - 5]
102− published_date = parser.parse(date_string, dayfirst=True)
103−
104102 # fix content string
105103 content = content[date_pos:]
106104
105+ try:
106+ published_date = parser.parse(date_string, dayfirst=True)
107+ except ValueError:
108+ pass
109+
107110 # check if search result starts with something like: "5 days ago ... "
108111 elif re.match(r"^[0-9]+ days? ago \.\.\. ", content):
109112 date_pos = content.find('...') + 4