0

Google 検索で次の URL が表示されるようです。

/url?q=  "URL WOULD BE HERE"    &sa=U&ei=9LFsUbPhN47qqAHSkoGoDQ&ved=0CCoQFjAA&usg=AFQjCNEZ_f4a9Lnb8v2_xH0GLQ_-H0fokw

BeautifulSoup による html 解析を受けた場合。

soup.findAll('a')['href'] を使用してからリンクを取得しています。

より具体的には、私が使用したコードは次のとおりです。

import urllib2
from BeautifulSoup import BeautifulSoup, SoupStrainer
import re

main_site = 'https://www.google.com/'
search = 'search?q=' 
query = 'pillows'
full_url = main_site+search+query
request = urllib2.Request(full_url, headers={'User-Agent': 'Chrome/16.0.912.77'})
main_html = urllib2.urlopen(request).read()

results = BeautifulSoup(main_html, parseOnlyThese=SoupStrainer('div', {'id': 'search'}))
try:
    for search_hit in results.findAll('li', {'class':'g'}):
        for elm in search_hit.findAll('h3',{'class':'r'}):
            for a in elm.findAll('a',{'href':re.compile('.+')}):
                print a['href']

except TypeError:
    pass

また、他のサイトで、がリンク先のa['href']ような情報を返す場合があることに気付きました。これが単純に連結できるかどうかはわかっていますが、見ているWebサイトに基づいて解析および処理の方法を変更する必要があるべきではないと感じています。このリンクを取得するより良い方法はありますか? 考慮に入れる必要があるJavaScriptはありますか?BeautifulSoup には、完全な html を取得するための簡単な方法があります。/dsoicjsdaoicjsdcjwebsite.com/dsoicjsdaoicjsdcja['href']a

4

2 に答える 2