2017-07-04 30 views
0

我試圖寫一個腳本執行谷歌搜索輸入關鍵字,返回僅前10個網址的內容的內容。的Python:執行谷歌的搜索和提取只能從個人前10個結果

注:內容具體指的是由搜索項要求,並在返回的URL的屍體被發現的內容。

我與搜索和排名前10位的URL取出部分完成。下面是該腳本:

from google import search 
top_10_links = search(keyword, tld='com.in', lang='en',stop=10) 

但是我無法檢索只從鏈接內容不知道它們的結構。我可以通過使用開發找不到標記的類等刮從一個特定的網站內容tools.But我無法弄清楚如何從頂部10結果網址獲取內容,因爲每一個搜索項有不同的URL(不同網站有不同的CSS選擇器),並且很難找到所需內容的CSS類。這裏是從特定網站提取內容的示例代碼。

content_dict = {} 
i = 1 
for page in links: 
    print(i, ' @ link: ', page) 
    article_html = get_page(page)#get_page() returns page's html 
    soup = BeautifulSoup(article_html, 'lxml') 
    content = soup.find('div',{'class': 'entry-content'}).get_text() 
    content_dict[page] = content 
    i += 1 

但是,CSS類改變了不同的網站。有沒有我能得到這個腳本工作,並獲得所需的內容?

+0

在很多情況下,你想要的內容是* *最裏面的一個網頁,即文本,它不包含進一步的*標記*。您可以編寫代碼,從'BeautifulSoup'也許正則表達式幫助,以便讓網頁最裏面的文字,無論其設計的,但不會非常有組織的(你可以得到不必要的文本以及)。 –

+0

at @Sam :)我試過了,但得到了和你說的一樣的結果。我也收到了亂七八糟的文字。沒有辦法擺脫它 –

+0

也許不是。 @pythad是正確的。沒有關於頁面結構的知識你就不能刮。 –

回答

1

不能在不知道你所刮的結構的情況下進行刮擦。但是有一個類似的包。看看newspaper