0
看來,谷歌搜索將提供以下網址:通過HREF鑑於谷歌搜索網址是錯誤的
/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']
可能返回類似/dsoicjsdaoicjsdcj
其中的鏈接將帶你到website.com/dsoicjsdaoicjsdcj
其他網站。 我知道如果是這種情況,我可以簡單地將它們連接起來,但我覺得應該不是我應該改變我分析和處理基於我正在查看的網站的a['href']
的方式。有沒有更好的方式來獲得此鏈接?我需要考慮一些JavaScript嗎?當然,在BeautifulSoup中有一個簡單的方法可以從a
得到完整的HTML?