2017-07-26 96 views
1

我无法从网站抓取数据,使用CloudFlare。 我总是得到urllib.error.HTTPError:HTTP错误503:服务暂时不可用 您可以告诉我通过CloudFlare保护的方式吗?从网站刮,有CloudFlare(BeautifulSoup,请求)

from bs4 import BeautifulSoup 
from urllib.request import Request, urlopen 
#Website url was changed to ####, because it is secret 
url = '#######' 
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 
    'Accept-Encoding': 'none', 
    'Accept-Language': 'en-US,en;q=0.8', 
    'Connection': 'keep-alive'} 

req = Request(url,headers=hdr) 
page = urlopen(req) 
soup = BeautifulSoup(page, "lxml") 

print(soup) 

你能解释一下我的每一步,请

+0

'import requests; page = requests(url).content'通常可以工作,不需要做任何更详细的操作。 –

+0

@BillBell,你好。你能给我看一个样品吗? –

回答

0

有时请求甚至会时的urllib不起作用。

import requests 
import bs4 
url = ... a secret 
page = requests(url).content 
soup = bs4.BeautifulSoup(page, 'lxml') 

如果不工作,那么我会尝试。有很多关于如何在StackOverflow上使用它的例子。我无法提供建议,因为我没有要使用的网址。

+0

Cfscrape图书馆帮我 –

+0

有趣!我必须尝试。 –