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
なぜ範囲を使用しているのですか?単に 'entries = str(30)'を使用していますか?あなたは文字通り同じことを何度も何度もやっています。 –
それを指摘してくれてありがとう。私はそれを取り除き、私が作成したエントリ変数の代わりに私を配置しました。 – dtrinh