2016-08-23 19 views
1

私は飛行機のチケットのウェブサイトをウェブページしています。私の問題は次のとおりです。Chrome開発者は、スクラップするHTMLオブジェクトのクラスを識別するために使用しています。しかし、私のコードはそれを見つけることはありません。 Chromeデベロッパーエクステンションに表示されるHTMLコードをダウンロードしていないようです。Python Webscrapping

import requests 
from BeautifulSoup import BeautifulSoup 

url = 'http://www.momondo.de/flightsearch/?Search=true&TripType=2&SegNo=2&SO0=BOS&SD0=LON&SDP0=07-09-2016&SO1=LON&SD1=BOS&SDP1=12-09-2016&AD=1&TK=ECO&DO=false&NA=false' 
req = requests.get(url) 
soup = BeautifulSoup(req.content) 
x = soup.findAll("span" ,{"class":"value"}) 
+1

、私はできるだけ早く自分のアクセスをブロックしたいです。ウェブサイトでは、使用できるAPIを提供することがあります。また、サイトのレイアウトや構造を変更するとどうなりますか? –

答えて

1

を(...項目を検査)次のことを試してみてください。これにより

from bs4 import BeautifulSoup 
import urllib.request 

source = urllib.request.urlopen('http://www.momon...e&NA=false').read() 
soup = BeautifulSoup(source,'html5lib') 
for item in soup.find_all("span", class_="value"): 
    print(item.text) 

あなたはクラス「値」で、ウェブページのすべてのスパンをこすりすることができます。コンテンツの代わりにHTMLエレメント全体とその属性を表示する場合は.textprint(item.text)から削除してください。

もしあなたがこれを行うのに問題があるなら、おそらくpipを使ってhtml5libをインストールする必要があります(あなたはウィンドウを使っていると仮定してCMDをadminとして実行しようとします)。

0

また、これを試すことができます:私が見つけた場合は、誰かが自分の利益のために私のウェブサイトをスクレイピングして

for values_in_x in x: 

    print(values_in_x.text)