| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | """ APK Mirror @website     https://www.apkmirror.com @using-api   no @results     HTML @stable      no (HTML can change) @parse       url, title, thumbnail_src"""from lxml import htmlfrom searx.engines.xpath import extract_textfrom searx.url_utils import urlencode# engine dependent configcategories = ['it']paging = True# I am not 100% certain about this, as apkmirror appears to be a wordpress site,# which might support time_range searching. If you want to implement it, go ahead.time_range_support = False# search-urlbase_url = 'https://www.apkmirror.com'search_url = base_url + '/?post_type=app_release&searchtype=apk&page={pageno}&{query}'# do search-requestdef request(query, params):    params['url'] = search_url.format(pageno=params['pageno'],                                      query=urlencode({'s': query}))    return params# get response from search-requestdef response(resp):    results = []    dom = html.fromstring(resp.text)    # parse results    for result in dom.xpath('.//div[@id="content"]/div[@class="listWidget"]/div[@class="appRow"]'):        link = result.xpath('.//h5/a')[0]        url = base_url + link.attrib.get('href') + '#downloads'        title = extract_text(link)        thumbnail_src = base_url + result.xpath('.//img')[0].attrib.get('src').replace('&w=32&h=32', '&w=64&h=64')        res = {            'url': url,            'title': title,            'thumbnail_src': thumbnail_src        }        # append result        results.append(res)    # return results    return results
 |