2016-05-04 4 views
0

私はpythonリクエストライブラリを使ってgoogleからクエリを出しています。しかし、それは動作していません。私がここに投稿する前に、私はstackoverflow hereの別のポストを見つけましたが、どちらもうまくいきませんでした。私はあなたがGoogleを使用してURLのクエリを行うことができる方法で変わったと思うが、私はそれが何であるかわからないので、とても新しいです。 HERESに私のコード私はPythonリクエストライブラリを使ってdjangoのGoogleクエリを作ろうとしていますが、動作していません。

def index(request): 

     url = ('https://www.google.com/webhp?hl=en#hl=en&q=stackoverflow') 
     google = requests.get(url) 
     bs = BeautifulSoup(google.content) 
     d = bs.title.string 


     links = [] 
     for link in bs.findAll('a'): 
      links.append((
       link.text, 
       link.get('href'), 
       # link.get('src') 
      ) 
     ) 


     # return HttpResponse('<pre>' + r.text + '</pre>') 
     context = { 

      "links": links, 
     } 
     return render(request, 'index.html', context) 

と私のテンプレートで

{% for l in links %} 
    {{l}}<br> 
{% endfor %} 

が、これは、出力

('https://maps.google.com/maps?hl=en&tab=wl',) 
    ('https://play.google.com/?hl=en&tab=w8',) 
    ('https://www.youtube.com/?hl=en&tab=w1',) 
    ('https://news.google.com/nwshp?hl=en&tab=wn',) 
    ('https://mail.google.com/mail/?tab=wm',) 
    ('https://drive.google.com/?tab=wo',) 
    ('https://www.google.com/intl/en/options/',) 
    ('http://www.google.com/history/optout?hl=en',) 
    ('/preferences?hl=en',) 
    ('https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=https://www.google.com/webhp%3Fhl%3Den',) 
    ('/search?site=webhp&ie=UTF-8&q=Jane+Jacobs&oi=ddle&ct=jane-jacobss-100th-birthday-5122456077467648-hp&hl=en&sa=X&ved=0ahUKEwjinsHMgMHMAhVKPz4KHVX_CLsQNggD',) 
    ('/advanced_search?hl=en&authuser=0',) 
    ('/language_tools?hl=en&authuser=0',) 
    ('/intl/en/ads/',) 
    ('/services/',) 
    ('https://plus.google.com/116899029375914044550',) 
    ('/intl/en/about.html',) 
    ('/intl/en/policies/privacy/',) 
    ('/intl/en/policies/terms/',) 

ですこれは、Googleのホームページのようですが、それは私が照会ものと一致していません。私はstackoverflowと関係がある記事のリストを取得する必要があります。これをどうすれば解決できますか?明確にするには、私の選択肢のクエリを使ってgoogleに問い合わせて、リンクを掻きとってテンプレートに表示したいのです

+1

Googleは検索結果をかなり保護しています。プログラムによるアクセスを積極的に検出しています(もしあなたがキャプチャを表示し、 。本当にそのルートに行きたい場合は、リダイレクトに従うことができ、クッキーを維持し、潜在的にjsを実行できるより強力なhttpクライアントを必要とするでしょう。したがって、フル機能のブラウザエミュレーションです。 – serg

答えて

0

1)あなたが掻き取ろうとしているページのソースを見ましたか?私は、生成されたhtmlのリンクが表示されません。
2)おそらくセレンなどを使用する必要があります。 1つは、ユーザーエージェントを定義していないことです。 Googleはそのような努力を邪魔するようにページを設計している

+0

オハイオ州オハイオ州これは私が恋していないので、私は新しいです – nothingness

+0

私は本当にtechmemeを模倣しようとしていた。私はそれがそれがサイトのための物語を得るためにこれに似たスクリプトを実行したと思った – nothingness

関連する問題