pythonスクリプトを使用してGoogleでテキストを検索し、各結果の名前、説明、URLを返します。現在このコードを使用しています:
from google import search
ip=raw_input("What would you like to search for? ")
for url in search(ip, stop=20):
print(url)
これはURLのみを返します。各URLの名前と説明を返すにはどうすればよいですか?
私が探していたものとはまったく異なりますが、私は今のところ素敵な解決策を見つけました(これを改善できるなら、これを編集するかもしれません)。 Googleでの検索(URLのみを返す)とHTMLページを解析するためのBeautiful Soupパッケージを組み合わせました:
from google import search
import urllib
from bs4 import BeautifulSoup
def google_scrape(url):
thepage = urllib.urlopen(url)
soup = BeautifulSoup(thepage, "html.parser")
return soup.title.text
i = 1
query = 'search this'
for url in search(query, stop=10):
a = google_scrape(url)
print str(i) + ". " + a
print url
print " "
i += 1
これにより、ページのタイトルとリンクのリストが表示されます。
そして別の素晴らしいソリューション:
from google import search
import requests
for url in search(ip, stop=10):
r = requests.get(url)
title = everything_between(r.text, '<title>', '</title>')
彼のコードにstop=20
引数があるため、Mario Vilasによる このライブラリを使用していると仮定します 。このライブラリはURL以外を返すことができず、恐ろしく未開発のようです。そのため、現在使用しているライブラリでは、実行したいことはできません。
代わりに abenassi/Google-Search-API を使用することをお勧めします。それからあなたは単にすることができます:
from google import google
num_page = 3
search_results = google.search("This is my query", num_page)
for result in search_results:
print(result.description)
それらのほとんどは使用してみましたが、うまくいかなかったか、パッケージをインポートしても検索モジュールが見つからないなどのエラーを出しました。または、私はSelenium Webドライバーで解決しましたが、FirefoxまたはchromeまたはPhantom web browser、それでも、最初にブラウザに問い合わせてから検索結果を返すため、実行時間が少し遅いと感じました。
だから私はgoogle apiを使用することを考えましたが、驚くほど速く動作し、結果を正確に返します.
ここでコードを共有する前に、従うべきいくつかの簡単なヒントがあります:
それだけです。今あなたがしなければならないことは、このコードを実行することです。
from googleapiclient.discovery import build
my_api_key = "your API KEY TYPE HERE"
my_cse_id = "YOUR CUSTOM SEARCH ENGINE ID TYPE HERE"
def google_search(search_term, api_key, cse_id, **kwargs):
service = build("customsearch", "v1", developerKey=api_key)
res = service.cse().list(q=search_term, cx=cse_id, **kwargs).execute()
return res['items']
results= google_search("YOUR SEARCH QUERY HERE",my_api_key,my_cse_id,num=10)
for result in results:
print(result["link"])
Serp API のようなサードパーティのサービスを使用することもできます。これはGoogle検索エンジンの結果です。プロキシをレンタルし、HTMLの結果を解析する必要があるという問題を解決します。 JSON出力は特に豊富です。
Pythonとの統合は簡単です。
from lib.google_search_results import GoogleSearchResults
params = {
"q" : "Coffee",
"location" : "Austin, Texas, United States",
"hl" : "en",
"gl" : "us",
"google_domain" : "google.com",
"api_key" : "demo",
}
query = GoogleSearchResults(params)
dictionary_results = query.get_dictionary()
GitHub: https://github.com/serpapi/google-search-results-python