2017-03-17 14 views
0

こんにちは私は美しいスープ美しいスープ解析アマゾンのページ

リンク使用していますので、本の詳細については、Amazonのページを解析しようとしている:https://www.amazon.com/Dogs-Purpose-Novel-Humans/dp/0765326264/ref=sr_1_1?s=electronics&ie=UTF8&qid=1489776209&sr=1-1&keywords=books

from bs4 import BeautifulSoup 
import requests 

url = raw_input("Enter a website to extract the URL's from: ") 
r = requests.get(url) 

data = r.text 

soup = BeautifulSoup(data, "lxml") 

#Grab book details 
print soup.find("table", {"id": "productDetailsTable" }) 

をしかし、私はこのコードをしようとすると、私はどれを取得していません結果として、私はidのproductDetailsTableが存在すると確信しています、そして、私はダミーhtmlでこのコードを実行しようとすると、URLだけで動作しませんか?

+0

AmazonのAPIを使用しない理由は何ですか? – Cfreak

+0

APIで実際にアクセスできないhtmlページに表示されている他の製品の具体的な製品詳細を取得しようとしていました。( –

答えて

1

私は、HTMLデータを受信するためにhttps://www.amazon.com/をしなければならなかったhttps://www.amazon.com

にproductDetailsTableを見ていません。

私のやや修正されたPython 3のコードです。

from bs4 import BeautifulSoup 
import requests 

url = input("Enter a website to extract the URL's from: ") 
r = requests.get(url) 

data = r.text 

soup = BeautifulSoup(data, "lxml") 

print(soup.text) 

これはページのhtmlを出力します。

あなたはamazonがスマートであることに気づくでしょう。 htmlにはロボットチェックが含まれています:

if (true === true) { 
var ue_t0 = (+ new Date()), 
    ue_csm = window, 
    ue = { t0: ue_t0, d: function() { return (+new Date() - ue_t0); } }, 
    ue_furl = "fls-na.amazon.com", 
    ue_mid = "ATVPDKIKX0DER", 
    ue_sid = (document.cookie.match(/session-id=([0-9-]+)/) || [])[1], 
    ue_sn = "opfcaptcha.amazon.com", 
    ue_id = 'R8D7EEN5FVS7RWC2M549'; 
} 
Enter the characters you see below 
Sorry, we just need to make sure you're not a robot. For best results, please make sure your browser is accepting cookies. 

Amazonのページを読ませないようにしています。あなたはおそらくrequestsでもっとやらなければならなくて、headerscookieという情報が含まれています。

+0

oh rip、okay thanks to more sense –

関連する問題