2016-07-09 3 views
1

だから私はこのmetasearchエンジンから最低限のホテルを掻き分けなければならない。しかし、それをすることができません。クラスがある要素を見つけているうちに空のリストが表示されます。要求は、私が望む正しいhtmlを取得していますが。私は何をすべきかわかりません? ここに私のコードです:kayak.comから特定の地域のホテルの最低価格を削るには?

# -*- coding: utf-8 -*- 
""" 
Created on Sat Jul 09 13:30:55 2016 

@author: sroy 
""" 

import requests 
from bs4 import BeautifulSoup 

url = "https://www.kayak.co.in/hotels/Kolkata,India-c44834/2016-07-09/2016-07-10/2guests" 
headers = { 
'Accept':"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 
'Accept-Encoding':"gzip, deflate, sdch, br", 
'Accept-Language':"en-US,en;q=0.8", 
'Cache-Control':"max-age=0", 
'Connection':"keep-alive", 
'DNT':1, 
'Host':"www.kayak.co.in", 
'Referer':"https://www.kayak.co.in/hotels", 
'Upgrade-Insecure-Requests':1, 
'User-Agent':"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 
} 

req = requests.get(url, headers=headers) 
soup = BeautifulSoup(req.text.encode('utf-8')) 


hotel_name = soup.find_all(".title") 
price_elems = soup.find_all(".price") 

for hotel in hotel_name: 
    i=0 
    print hotel_name[i] 
    print price_elems[i] 
    i+=1 

それは何も印刷されていません。理由を知らない。あなたはCSS selectorsを使用しますが、find_all()方法の代わりに、select()にそれらを渡しているPROB

+0

チェックイン/アウトの日付や場所はどこに入力していますか? URL内の –

+0

https://www.kayak.co.in/hotels – sumitroy

答えて

2

情報:

hotel_name = soup.select(".title") 
price_elems = soup.select(".price") 

けれども、私はまだそれは非常にダイナミックなサイトですので、あなたが実際のブラウザが必要だと思います。いずれにしても、利用規約を熟読し、法的な面にとどまるようにしてください。

+0

Client-side templating here
<スパンクラス= "価格">
Client-side templating here
<スパンクラス= "価格">
Client-side templating here
<スパンクラス= "価格"> – sumitroy

+0

これは私が得ている出力です – sumitroy

+0

@catch_meええ、これは私が答えにこのメモを持っている理由:) – alecxe

関連する問題