2017-08-24 201 views
-1

我目前正試圖重現網上刮美麗的湯的例子。但是,我不得不說,我覺得這很不直觀,這當然也可能是由於缺乏經驗。如果有人能幫我一個例子,我會很感激。我無法在網上找到很多相關信息。我想以提取下列網站的第一個值(多努姆):http://flow.gassco.no/蟒蛇 - 網上刮美麗的湯

我只得到了這麼遠:

import requests 

page = requests.get("http://flow.gassco.no/") 

from bs4 import BeautifulSoup 
soup = BeautifulSoup(page, 'html.parser') 

預先感謝您!

+0

我想,你必須使用硒網絡驅動程序繞過長期接受 – slesh

+0

謝謝,我看看吧! –

回答

1

另一種方法是使用當前的requests模塊。 你可以通過user-agent這樣的:

import requests 
from bs4 import BeautifulSoup 

headers = { 
    'User-Agent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' 
} 

page = requests.get("http://flow.gassco.no/", headers=headers) 

soup = BeautifulSoup(page.text, 'html.parser') 

編輯:爲了使這個版本的工作簡單,你可以做一個變通方法與瀏覽器會話。 您需要通過requests.get a cookie告知網站會話號碼,其中條款和條件已被接受。

運行這段代碼:

import requests 
from bs4 import BeautifulSoup 

url = "http://flow.gassco.no" 
s = requests.Session() 
r = s.get(url) 
action = BeautifulSoup(r.content, 'html.parser').find('form').get('action') #this gives a "tail" of url whick indicates acceptance of Terms 
s.get(url+action) 
page = s.get(url).content 
soup = BeautifulSoup(page, 'html.parser') 
+0

謝謝德米特里!你還會嘗試與美麗的湯嗎? –

+0

是的,你的代碼在'page'之後進一步發展。但是在腳本的頂部替換所有的導入(這只是爲了正確的style =))。 –

+0

並將'.text'添加到'page'或否則'湯'將不會被創建 –

1

您需要先學習如何使用urllib,urllib2

一些網站盾蜘蛛。

類似:

urllib2.request.add_header('User-Agent','Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36') 

讓網站認爲你的瀏覽器,而不是機器人。

+0

謝謝!顯然,我需要更多地研究它。 –