2017-03-25 12 views
0

私は、ウェブサイトがGoogleで最初に決定されたキーワードを検索しているかどうかを調べる簡単なスクリプトを書いています。python - URLを解析する

def parse_url(url): 
    url = urlparse(url) 
    hostname = url.netloc 
    return hostname 

とによって選択されたタグのリストから始まる:

:私はこれを書いた

linkElems = soup.select('.r a') #in google first page the resulting urls have class r 

今は、これはURLを解析し、ホスト名を返す関数であります

for link in linkElems: 
     l = link.get("href")[7:] 
     url = parse_url(l) 
     if "www.example.com" == url: 
     #do stuff (ex store in a list, etc) 

この2番目の行では、7番目のインデックスから開始する必要があります。すべてのhrefの値秒は'/url?q='で始まります。

私のpythonを学んでいますので、これを行うには良い方法がある場合、私は疑問に思って、または単に代替1を(おそらく正規表現またはメソッドを交換するか、urlparseライブラリーから)

答えて

0

あなたのpython lxmlのを使用することができますモジュールは、それを行うにはまた、BeautifulSoupよりも速いです。これは、になります

import requests 
from lxml import html 

blah_url = "https://www.google.co.in/search?q=blah&oq=blah&aqs=chrome..69i57j0l5.1677j0j4&sourceid=chrome&ie=UTF-8" 
r = requests.get(blah_url).content 
root = html.fromstring(r) 

print(root.xpath('//h3[@class="r"]/a/@href')[0].replace('/url?q=', '')) 
print([url.replace('/url?q=', '') for url in root.xpath('//h3[@class="r"]/a/@href')]) 

これは、このような何かを行うことができます

http://www.urbandictionary.com/define.php%3Fterm%3Dblah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggTMAA&usg=AFQjCNFge5GFNmjpan7S_UCNjos1RP5vBA 
['http://www.urbandictionary.com/define.php%3Fterm%3Dblah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggTMAA&usg=AFQjCNFge5GFNmjpan7S_UCNjos1RP5vBA', 'http://www.dictionary.com/browse/blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggZMAE&usg=AFQjCNE1UVR3krIQHfEuIzHOeL0ZvB5TFQ', 'http://www.dictionary.com/browse/blah-blah-blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggeMAI&usg=AFQjCNFw8eiSqTzOm65PQGIFEoAz0yMUOA', 'https://en.wikipedia.org/wiki/Blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggjMAM&usg=AFQjCNFxEB8mEjEy6H3YFOaF4ZR1n3iusg', 'https://www.merriam-webster.com/dictionary/blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggpMAQ&usg=AFQjCNHYXX53LmMF-DOzo67S-XPzlg5eCQ', 'https://en.oxforddictionaries.com/definition/blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFgguMAU&usg=AFQjCNGlgcUx-BpZe0Hb-39XvmNua2n8UA', 'https://en.wiktionary.org/wiki/blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFggzMAY&usg=AFQjCNGc9VmmyQls_rOBOR_lMUnt1j3Flg', 'http://dictionary.cambridge.org/dictionary/english/blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFgg5MAc&usg=AFQjCNHJgZR1c6VY_WgFa6Rm-XNbdFJGmA', 'http://www.thesaurus.com/browse/blah&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQFgg-MAg&usg=AFQjCNEtnpmKxVJqUR7P1ss4VHnt34f4Kg', 'https://www.youtube.com/watch%3Fv%3D3taEuL4EHAg&sa=U&ved=0ahUKEwiyscHQ5_LSAhWFvI8KHctAC0IQtwIIRTAJ&usg=AFQjCNFnKlMFxHoYAIkl1MCrc_OXjgiClg']