2016-10-07 17 views
0

香港のすべてのレストランとその対応するURLのリストを削っています。現在、私のコードでは、1ページ目と2ページ目を削っています。しかし、私は、私がrange()内で指定した項目の量に達するまで、私のforループを少し動かすようにして、ぼかしを続けます。レストランのデータを掻き集めるためのループFor

私はまだこれで初心者ですので、どんな助けも素晴らしいでしょう。

#import libraries 
import requests 
from bs4 import BeautifulSoup 
import csv 


#scrape the first page because this URL is different then when you start moving to different pages 
url0 = 'https://www.tripadvisor.com/Restaurants-g294217-Hong_Kong.html#EATERY_LIST_CONTENTS' 
r = requests.get(url0) 
data = r.text 
soup = BeautifulSoup(r.text, "html.parser") 
for link in soup.findAll('a', {'property_title'}): 
    print 'https://www.tripadvisor.com/Restaurant_Review-g294217-' + link.get('href') 
    print link.string 

#loop to move into the next pages. entries are in increments of 30 per page 
for i in range(0, 120, 30): 
    entries = str(30) 
    #url format offsets the restaurants in increments of 30 after the oa; hence entries as variable 
    url1 = 'https://www.tripadvisor.com/Restaurants-g294217-oa' + entries + '-Hong_Kong.html#EATERY_LIST_CONTENTS' 
    r1 = requests.get(url1) 
    data1 = r1.text 
    soup1 = BeautifulSoup(data1, "html.parser") 
    for link in soup1.findAll('a', {'property_title'}): 
     print 'https://www.tripadvisor.com/Restaurant_Review-g294217-' + link.get('href') 
     print link.string 
    break 
+0

なぜ範囲を使用しているのですか?単に 'entries = str(30)'を使用していますか?あなたは文字通り同じことを何度も何度もやっています。 –

+0

それを指摘してくれてありがとう。私はそれを取り除き、私が作成したエントリ変数の代わりに私を配置しました。 – dtrinh

答えて

0

私はそれが欲しかった方法をループにしてしまった。これが将来の人々に役立つことを願っています

for i in range(30, 120, 30): 
    while i <= range: 
     i = str(i) 
     #url format offsets the restaurants in increments of 30 after the oa; hence entries as variable 
     url1 = 'https://www.tripadvisor.com/Restaurants-g294217-oa' + i + '-Hong_Kong.html#EATERY_LIST_CONTENTS' 
     r1 = requests.get(url1) 
     data1 = r1.text 
     soup1 = BeautifulSoup(data1, "html.parser") 
     for link in soup1.findAll('a', {'property_title'}): 
      print 'https://www.tripadvisor.com/Restaurant_Review-g294217-' + link.get('href') 
      print link.string 
     break 
関連する問題