2014-05-09 81 views
-4

這裏是我的Python代碼:爲什麼我不能通過BeautifulSoup刮擦亞馬遜?

import urllib2 
from bs4 import BeautifulSoup 

page = urllib2.urlopen("http://www.amazon.com/") 
soup = BeautifulSoup(page) 
print soup 

它適用於google.com和許多其他的網站,但它並不適用於amazon.com工作。

我可以在我的瀏覽器中打開amazon.com,但由此產生的「湯」仍然沒有。

此外,我發現它也無法從appannie.com刮。然而,而不是給沒有,代碼返回一個錯誤:

HTTPError: HTTP Error 503: Service Temporarily Unavailable 

所以我懷疑亞馬遜和App安妮塊刮。

請不要自行嘗試,而不是僅僅否決的問題:(

感謝

+5

相同的代碼工作對我來說,我只是說周圍http://www.amazon.com/ – fasouto

+0

報價,我不知道爲什麼http://www.google.com/對我的作品,但HTTP ://www.amazon.com/不。 – yyan

+0

它甚至可以在您的瀏覽器中打開嗎? –

回答

1

你可以試試這個:

import urllib2 
from bs4 import BeautifulSoup 

page = urllib2.urlopen("http://www.amazon.com/") 
soup = BeautifulSoup(page) 
print soup 

在Python中的任意文本被稱爲字符串,並將其必須用引號括起(「」)

0

添加標題

import urllib2 
from bs4 import BeautifulSoup 

headers = {'User-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36'} 

page = urllib2.urlopen("http://www.amazon.com/") 
soup = BeautifulSoup(page) 
print soup 
2

添加標題,然後它將工作。

from bs4 import BeautifulSoup 
import requests 
url = "http://www.amazon.com/" 

# add header 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'} 
r = requests.get(url, headers=headers) 
soup = BeautifulSoup(r.content, "lxml") 
print soup