2016-04-11 11 views
0

Ich habe gerade angefangen, Python zu lernen und mit diesem Problem konfrontiert. Der Preis wird von Amazon analysiert und auf der Konsole ausgegeben.bekommen HTTPError beim Versuch, Informationen von der Webseite zu analysieren

Dies ist mein Code:

import requests, bs4 

def getAmazonPrice(productUrl): 
    res = requests.get(productUrl) 
    res.raise_for_status() 

    soup = bs4.BeautifulSoup(res.text, 'html.parser') 
    elems = soup.select('#addToCart > a > h5 > div > div.a-column.a-span7.a-text-right.a-span-last > span.a-size-medium.a-color-price.header-price') 
    return elems[0].text.strip() 


price = getAmazonPrice('http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_2?ie=UTF8&qid=1460386052&sr=8-2&keywords=python+book') 
print('The price is ' + price) 

Fehlermeldung:

Traceback (most recent call last): File "D:/Code/Python/Basic/webBrowser-Module.py", line 37, in price = getAmazonPrice(' http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_2?ie=UTF8&qid=1460386052&sr=8-2&keywords=python+book ') File "D:/Code/Python/Basic/webBrowser-Module.py", line 30, in getAmazonPrice res.raise_for_status() File "C:\Python33\lib\requests\models.py", line 844, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 503 Server Error: Service Unavailable for url: http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_2?ie=UTF8&qid=1460386052&sr=8-2&keywords=python+book

Process finished with exit code 1

Antwort

3

Vortäuschen ein echter Browser seine durch einen User-Agent Kopf Bereitstellung würde dieses besondere Problem beheben:

res = requests.get(productUrl, headers={ 
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36" 
}) 

würden Sie auch Ihre CSS zwicken müssen Selektor. Zum Beispiel .header-price würden Sie alle Preise auf der Seite (Non-Prime und Prime in diesem Fall) bekommen.

+0

jetzt bekomme ich das: IndexError: Listenindex außerhalb des Bereichs – Viktor

+0

@Viktor bereits adressiert, überprüfen Sie das Update. – alecxe

+0

Vielen Dank! – Viktor

Verwandte Themen