イブニングの人々、
Google に質問して、関連するすべてのリンクを Google の信頼できる検索クエリから取得しようとしています (つまり、「site: Wikipedia.com Thomas Jefferson」を検索すると、wiki.com/jeff、wiki.com/tom、等。)
これが私のコードです:
from bs4 import BeautifulSoup
from urllib2 import urlopen
query = 'Thomas Jefferson'
query.replace (" ", "+")
#replaces whitespace with a plus sign for Google compatibility purposes
soup = BeautifulSoup(urlopen("https://www.google.com/?gws_rd=ssl#q=site:wikipedia.com+" + query), "html.parser")
#creates soup and opens URL for Google. Begins search with site:wikipedia.com so only wikipedia
#links show up. Uses html parser.
for item in soup.find_all('h3', attrs={'class' : 'r'}):
print item.string
#Guides BS to h3 class "r" where green Wikipedia URLs are located, then prints URLs
#Limiter code to only pull top 5 results
ここでの目標は、クエリ変数を設定し、Python で Google にクエリを実行して、必要に応じて Beautiful Soup がすべての「緑色」のリンクを取得することです。
緑色のリンクを完全に引き出したいだけです。奇妙なのは、Google のソース コードが「隠されている」ことです (検索アーキテクチャの兆候です)。そのため、Beautiful Soup は、h3 タグから href を取得することはできません。要素を検査すると h3 href が表示されますが、ソースを表示すると表示されません。
私の質問は次のとおりです: ソースコードにアクセスできず、Inspect Element のみにアクセスできない場合、BeautifulSoup を介して Google から最も関連性の高い上位 5 つの緑色のリンクを取得するにはどうすればよいですか?
PS: 私が何を達成しようとしているのかを理解するために、私のような 2 つの比較的近いスタック オーバーフローの質問を見つけました。