Pythonにてスクレピングをするプログラムを作ろうとしております。
全て書き終わり、実行すると次のエラーが起きてしまい、どのようにすればよいのか調べてもわからないため、質問させていたきます。
▼エラー画面
Trackback(most recent call last): File "Scraping.py", line 43, in<module> page = elems[0].getText() IndexError: list index out of range
▼プログラム文(※一部抜粋)
print_message("ワークファイルの作成") with open(work_file, 'w', encoding=file_code) as f: # ループ(ページの最後まで or 先頭行) while flag: r = requests.get("https://gadget-shot.com/page/" + str(count)) soup = BeautifulSoup(r.content, "html.parser") elems = soup.select('#paginate > strong') page = elems[0].getText() if int(count) != int(page): print_message("ループから抜けます") break print(str(page) + "ページ目") articles = soup.find("ul", "entries").find_all("li", "post-48425") # 1ページ単位の記事を書き込む for article in articles: imageUrl = article.find("div", "list-thumb-img").img.get("src") title = article.find("h3", "list-post-title").img.get("title") pageUrl = article.find("h3", "list-post-title").a.get("href") line = ('"' + imageUrl + '","' + title + '","' + pageUrl + '"\n').encode(file_code, "ignore").decode(file_code) if top_line == line: print_message("重複を発見しました。") count = -1 break f.write(line) count = int(count) + 1 time.sleep(10)
無事、実行するためにはどうすれば良いのでしょうか。一応エラーで「IndexError: list index out of range」とでているので、配列の何かが間違っているのは分かったのですが、どのように修正すればよいか分かりません。
どうかご教授ください。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。