2017-02-27 29 views
3

私は、BeautifulSoupを使用してtcgplayer.comからYugiohカード価格の価格を引き出すPythonスクリプトを作成しようとしています。このウェブサイトでカードを検索すると、異なる売り手からの複数の価格で検索結果のページが返されます。私の目標は、これらすべての価格を引き上げることです。以下の例では、私は、「A」セル繁殖デバイスと呼ばれるカードの検索結果を開いている:Python BeautifulSoup空リストを返す

import urllib2 
from bs4 import BeautifulSoup 
html = urllib2.open('http://shop.tcgplayer.com/productcatalog/product/show?newSearch=false&ProductType=All&IsProductNameExact=false&ProductName=%22A%22%20Cell%20Breeding%20Device') 
soup = BeautifulSoup(html, 'lxml') 
soup.find_all('span', {'class': 'scActualPrice largetext pricegreen'}) 

数日前、soup.find_allラインを実行し、正しく、私は必要な情報を与えました。しかし、これを実行すると空の配列[]が得られます。 BeautifulSoupが空の配列を返していることについてかなり詳しく調べましたが、数日前にうまく動作していたので、それらのどれが私に当てはまるかわかりません。誰かが正しい方向に私を向けるのを助けることができますか?前もって感謝します!

答えて

2

あなたは本当のブラウザ使用してスクラップしseleniumを使用する必要があります。セレンを使用して

from selenium import webdriver 

driver = webdriver.Chrome('/path/to/chromedriver') 
driver.get('http://shop.tcgplayer.com/productcatalog/product/show?newSearch=false&ProductType=All&IsProductNameExact=false&ProductName=%22A%22%20Cell%20Breeding%20Device') 
prices = driver.find_elements_by_css_selector('.scActualPrice') 
for element in prices: 
    print(element.text) 
driver.quit() 
+0

これは完全に機能しました。ありがとうございました! –

0

このウェブサイトでは、Incapsulaというサービスを使用しています。 Webサイトの開発者は、ボットがコンテンツにアクセスするのを防ぐためにIncapsulaを設定しました。

管理者に連絡してアクセスをリクエストするか、APIをリクエストすることをおすすめします。

+0

は私のために働いていますが、それは同様に数日中に作業を停止うと思いますか? –

+0

セレンを使用すると、実際にブラウザを開いてすべての操作を行っているので、今は問題ありません。将来はチャンスがあるかもしれません。 –

+0

セレンの使用は信頼できません –

関連する問題