コードを何度も何度も何度も繰り返すことなく、美しいスープ/リクエストを使って1つのウェブサイトから複数の異なるページをクロールする方法を知りたいと思います。特定の都市の観光名所をクロールされ、次の私の現在のコードでは、ウェブサイトから複数のページをクロールする(BeautifulSoup、Requests、Python3)
:
RegionIDArray = [187147,187323,186338]
dict = {187147: 'Paris', 187323: 'Berlin', 186338: 'London'}
already_printed = set()
for reg in RegionIDArray:
for page in range(1,700,30):
r = requests.get("https://www.tripadvisor.de/Attractions-c47-g" + str(reg) + "-oa" + str(page) + ".html")
g_data = soup.find_all("div", {"class": "element_wrap"})
for item in g_data:
header = item.find_all("div", {"class": "property_title"})
item = (header[0].text.strip())
if item not in already_printed:
already_printed.add(item)
print("POI: " + str(item) + " | " + "Location: " + str(dict[reg]) + " | " + "Art: Museum ")
すべてが期待どおりに動作しますこれまでのところ。次のステップでは、観光名所に加えて、これらの都市で最も人気のある博物館を巡回したいと思います。したがって
、私は必要なすべての博物館を得るために、Cのパラメータを変更することで、要求を変更する必要があります。
r = requests.get("https://www.tripadvisor.de/Attractions-c" + str(museumIDArray) +"-g" + str(reg) + "-oa" + str(page) + ".html")
したがって私のコードは次のようになります。
RegionIDArray = [187147,187323,186338]
museumIDArray = [47,49]
dict = {187147: 'Paris', 187323: 'Berlin', 186338: 'London'}
already_printed = set()
for reg in RegionIDArray:
for page in range(1,700,30):
r = requests.get("https://www.tripadvisor.de/Attractions-c" + str(museumIDArray) +"-g" + str(reg) + "-oa" + str(page) + ".html")
soup = BeautifulSoup(r.content)
g_data = soup.find_all("div", {"class": "element_wrap"})
for item in g_data:
header = item.find_all("div", {"class": "property_title"})
item = (header[0].text.strip())
if item not in already_printed:
already_printed.add(item)
print("POI: " + str(item) + " | " + "Location: " + str(dict[reg]) + " | " + "Art: Museum ")
こと正確に正しいとは思わない。私が得たアウトプットには、ある都市のすべての博物館や観光スポットが含まれているわけではありません。
誰でも私を助けることができますか?どんなフィードバックもありがとうございます。
あなたのコードは、辞書にはPythonの組み込みをシャドーイング、コードのバーに行っていることも、エラーでしょうか? –
@PadraicCunninghamあなたが「python組み込み関数をシャドーイングする」とはどういう意味ですか?申し訳ありませんが、私はあなたの神経を鍛えていますが、まだ初心者です。 –
dictはpython型/関数です。組み込み型としてのvriablesの名前。リンクを追加して、それから解析する内容を正確に説明できますか? –