on master help sign in
[FIX] google videos thumbnails
commitcf26aba93b96bb1171feb60fefb232a9113b85b0 authorVenca24 <Vaclav.Zouzalik@seznam.cz> dateFri 4 Jan 2019, 15:48 (8 years ago) parentcee15f0
1 file changed+17−3
searx/engines/google_videos.py+17−3
searx/engines/google_videos.py+17−3
@@ -7,15 +7,16 @@
77 @using-api no
88 @results HTML
99 @stable no
10− @parse url, title, content
10+ @parse url, title, content, thumbnail
1111"""
1212
1313from datetime import date, timedelta
1414from json import loads
1515from lxml import html
16+from searx.engines import logger
1617from searx.engines.xpath import extract_text
1718from searx.url_utils import urlencode
18−
19+import re
1920
2021# engine dependent config
2122categories = ['videos']
@@ -73,11 +74,24 @@ def response(resp):
7374 url = result.xpath('.//div[@class="r"]/a/@href')[0]
7475 content = extract_text(result.xpath('.//span[@class="st"]'))
7576
77+ # get thumbnails
78+ script = str(dom.xpath('//script[contains(., "_setImagesSrc")]')[0].text)
79+ id = result.xpath('.//div[@class="s"]//img/@id')[0]
80+ thumbnails_data = re.findall('s=\'(.*?)(?:\\\\[a-z,1-9,\\\\]+\'|\')\;var ii=\[(?:|[\'vidthumb\d+\',]+)\'' + id,
81+ script)
82+ logger.debug('google video engine: ' + id + ' matched ' + str(len(thumbnails_data)) + ' times (thumbnail)')
83+ tmp = []
84+ if len(thumbnails_data) != 0:
85+ tmp = re.findall('(data:image/jpeg;base64,[a-z,A-Z,0-9,/,\+]+)', thumbnails_data[0])
86+ thumbnail = ''
87+ if len(tmp) != 0:
88+ thumbnail = tmp[-1]
89+
7690 # append result
7791 results.append({'url': url,
7892 'title': title,
7993 'content': content,
80− 'thumbnail': '',
94+ 'thumbnail': thumbnail,
8195 'template': 'videos.html'})
8296
8397 return results