2016-12-21 9 views
1

私はbs4でGoogle検索からリンクを取得しようとしていますが、私のコードは空のセットを返しています。すべての結果のためのリンクは、最初の結果のためだけのリンクではありませんどこPython 2.7 BeautifulSoup4が空のセットを返しています

import requests 
from bs4 import BeautifulSoup 

website = "https://www.google.co.uk/?gws_rd=ssl#q=science" 

response=requests.get(website) 

soup = BeautifulSoup(response.content) 

link_info = soup.find_all("h3", {class": "r"}) 
print link_info 

<h3 class="r">です。

私は[]を取得しました。これは、<div class="rc">を含めてリクエストしようとしている他のクラスのものです。 (のhttp:ここ

は私が後だ何のPRT SCで、

enter image description here

+0

[Googleのクロールが動作しませんScrapy]の可能性の重複を使用してみてください://stackoverflow.com/questions/33395133/scrapy-google-crawl-doesnt-work) – eLRuLL

+0

クエリはGETではなくPOSTリクエストです。 POST要求を使用して、下記のようにポストパラメータにqを入れる必要があります。それをより良く理解するには、ブラウザでinspect要素を開き、[ネットワーク]タブを開いてから要求を送信します。 URLヒットのリストが表示されます。そのうちの1つをクリックすると、あなたのリクエストについての詳細が表示されます。 params、headers、cookiesのようなオプションがあります。 Paramsは、サーバーに送信されるポストパラメーターです。 GET要求の場合、通常はパラメータはありません – theBuzzyCoder

答えて

0

は、次のコード

url = 'http://www.google.com/search?' 
params = {'q': 'science'} 
response = requests.get(url, params=params).content 
soup = BeautifulSoup(response) 
link_info = soup.find_all("h3", {"class": "r"}) 
print link_info 
関連する問題