1

Google 画像検索の結果の解析に問題があります。でやってみましたselenium webdriver。100件の結果が返ってきましたが、かなり遅かったです。モジュールを含むページをリクエストすることにしましたが、requests結果が 20 件しか返されませんでした。同じ 100 件の結果を得るにはどうすればよいですか? ページネーションなどの方法はありますか?
これはseleniumコードです:

_url = r'imgurl=([^&]+)&'

for search_url in lines:
    driver.get(normalize_search_url(search_url))

    images = driver.find_elements(By.XPATH, u"//div[@class='rg_di']")
    print "{0} results for {1}".format(len(images), ' '.join(driver.title.split(' ')[:-3]))
    with open('urls/{0}.txt'.format(search_url.strip().replace('\t', '_')), 'ab') as f:
        for image in images:
            url = image.find_element(By.TAG_NAME, u"a")
            u = re.findall(_url, url.get_attribute("href"))
            for item in u:
                f.write(item)
                f.write('\n')

requestsコード は次のとおりです。

_url = r'imgurl=([^&]+)&'

for search_url in lines[:10]:
    print normalize_search_url(search_url)
    links = 0
    request = requests.get(normalize_search_url(search_url))
    soup = BeautifulSoup(request.text)
    file = 'cars2/{0}.txt'.format(search_url.strip().replace(' ', '_'))
    with open(file, 'ab') as f:
        for image in soup.find_all('a'):
            if 'imgurl' in image.get('href'):
                links += 1
            u = re.findall(_url, image.get("href"))
            for item in u:
                f.write(item)
                f.write('\n')
                print item
        print "{0} links extracted for {1}".format(links, ' '.join(soup.title.name.split(' ')[:-3]))
4

2 に答える 2

1

私はセレンでそれを試みたことはありませんが、Google の検索エンジン API を使用してみましたか? あなたに役立つかもしれません: https://developers.google.com/products/#google-search

また、API の制限は 1 日あたり 100 リクエストなので、100 を超えることはないと思います。

于 2014-06-30T19:51:07.253 に答える