68def response(resp):
69 """Get response from Bing-Images"""
70
71 results = []
72 dom = html.fromstring(resp.text)
73
74 for result in dom.xpath('//ul[contains(@class, "dgControl_list")]/li'):
75
76 metadata = result.xpath('.//a[@class="iusc"]/@m')
77 if not metadata:
78 continue
79
80 metadata = json.loads(result.xpath('.//a[@class="iusc"]/@m')[0])
81 title = ' '.join(result.xpath('.//div[@class="infnmpt"]//a/text()')).strip()
82 img_format = ' '.join(result.xpath('.//div[@class="imgpt"]/div/span/text()')).strip().split(" ยท ")
83 source = ' '.join(result.xpath('.//div[@class="imgpt"]//div[@class="lnkw"]//a/text()')).strip()
84 results.append(
85 {
86 'template': 'images.html',
87 'url': metadata['purl'],
88 'thumbnail_src': metadata['turl'],
89 'img_src': metadata['murl'],
90 'content': metadata.get('desc'),
91 'title': title,
92 'source': source,
93 'resolution': img_format[0],
94 'img_format': img_format[1] if len(img_format) >= 2 else None,
95 }
96 )
97 return results