souwasora
@souwasora (takei souwa)

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 BeautifulSoup取得件数について

解決したいこと

ゲームサイト?ゲーム販売?のSteamで
BeautifulSoupを使って、データ採取をしております。
しかし、50件しか取得できなくて困っております
ページネーションなどを使ってる訳ではないので、そのページの物を全て取得したいです

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

エラーが出ている訳ではなく、50件しか取得できない
スクリーンショット 2022-10-29 12.42.46.png

該当するソースコード

import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
#キーワード入力
search_word = input("検索キーワード=")
url =  'https://store.steampowered.com/search/?term=' + search_word
res = requests.get(url)
res
#parser = 分割的な意味
soup = BeautifulSoup(res.text, 'html.parser',from_encoding='utf-8')
#soup
#soup_text = BeautifulSoup(res.text, 'html.parser')
games = soup.find_all('div', attrs={'class': 'responsive_search_name_combined'})
game_title = soup.find_all('span', attrs={'class': 'title'})
titles = []
for title in game_title:
    title = title.text
    titles.append(title)
game_price_elem = soup.select('div.col.search_price')
prices = [] 
for price in game_price_elem:
    price = price.text
    #必要か?
    price = price.replace("\n",'')
    #必要か?
    price = price.replace("\r",'')
    #strip()余分な空白や改行文字を取り除く
    price = price.strip()
    prices.append(price)
#csv作成
df = pd.DataFrame()
df['項目'] = titles
df['値段'] = prices
df
df.to_csv('steam.csv')

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。
なぜ、50件しか取得できないのかが、、分かりません、、
アドバイスお願いします

0

1Answer

なぜ、50件しか取得できないのか

スクロールすると続きを取得するようにできているからです。
つまり、初期表示時には50件しかhtml上に存在しません。
sample1.gif

スクロールするとネットワーク通信が増えるのが見えるかと思います。

1Like

Comments

  1. @souwasora

    Questioner

    ご対応ありがとうございます。

Your answer might help someone💌