@jr0406 (jr kikaku)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

pythonでのスクレイピングについて

解決したいこと

ここに解決したい内容を記載してください。

pythonでスクレイピングを行うプログラムを作成しています。
最終的には検索結果をCSVファイルにて出力したいと思います。

検索結果が複数ページあるのですが、1ページ目しか取得できません。
いろいろと調べたのですが改善できずご教授頂きたいです。

発生している問題・エラー

File "", line 17
break
^
SyntaxError: 'break' outside loop

該当するソースコード

python

import requests, bs4
import datetime
import calendar
import csv

import time
import os
import pandas as pd
import codecs
from urllib.parse import urljoin

res = requests.get('https://www.jda-tnavi.com/tokyo')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")

if bool(next_page) == False:
break
dynamic_url = urljoin(base_url, next_page.a.get("href"))

elems = soup.select('.facilitieInfo')
elems2 = soup.select('.facilitieName')
for elem,elem2 in zip(elems,elems2):
print(elem)
print(elem2)

自分で試したこと

いろんなサイトを参照して当て込んでみましたがダメでした。

0 likes

4Answer

先客がいましたが、言葉で説明すると、インデントが足りないということです。

0Like

インデントは質問を投稿した際に消えたのだと思います。
この場合問題なのは、ループではない部分にbreakが記述されていることです。
breakは「その時点でループを抜ける」というものですので、プログラムを中断したいのであればsys.exit()などを呼び出しましょう。
勿論その際は、はじめにimport sysと追加することもお忘れなく。

0Like

Comments

  1. @jr0406

    Questioner

    ありがとうございます!いろいろ試してやってみます!

next_pageが未初期化なので、

if bool(next_page) == False:
  break

で必ずbreakしてしまいます。
もちろん前出の通り、ループの外にあるのはおかしいですが。

0Like

Comments

  1. @jr0406

    Questioner

    ありがとうございます!見直して修正して試してみます!

Your answer might help someone💌