2017-08-24 157 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

谢谢!显然,我需要更多地研究它。 –