14歳の自分に衝撃の事実を告げてください

Pythonのスクレイピングの質問です。

こちらのランキングサイトから
clickCntが10000以上のタイトルをもってこようとしてます。(clickが1万以上のもの)

R18サイトになります↓
https://movie.eroterest.net/popular/?days=1


実際にコードを書いたのですが、このように
clickCntが10000以下のタイトルを表示されてしまいます。


['5', '位', 'アダルトのため規制(タイトルが表示されてます)']
['20,408click']
['6', '位', 'アダルトのため規制(タイトルが表示されてます)']
['25,900click']
['7', '位', 'アダルトのため規制(タイトルが表示されてます)']
['8', '位', 'アダルトのため規制(タイトルが表示されてます)']


clickCntが10000以下のものは、clickCntは表示されませんが、タイトルはでています。


どうしたら、
['5', '位', 'アダルトのため規制(タイトルが表示されてます)']
['20,408click']
['6', '位', 'アダルトのため規制(タイトルが表示されてます)']
['25,900click']

で止めることができるのでしょうか?


ソースコードです↓


# <div>タグのclassが'itemTitle'または'clickCnt'の要素をすべて取得
div_itemTitle_tags = soup.find_all('div', class_=lambda x: x in ['itemTitle', 'clickCnt'])

# iconGoodSiteクラスを持つ要素を削除します。
for div_item in div_itemTitle_tags:
for iconGoodSite_tag in div_item.find_all(class_='iconGoodSite'):
iconGoodSite_tag.extract()

# 数値が10000以上の要素だけを表示
for div_item in div_itemTitle_tags:
text_list = [x for x in div_item.stripped_strings]
if 'clickCnt' in div_item.get('class', []):
# 'clickCnt'の要素内のテキストを取得し、カンマを削除してから数値に変換
click_count_text = text_list[0]
click_count = int(re.sub(r'[^\d]', '', click_count_text))
if click_count >= 10000:
# 10000以上の場合、itemTitleを表示
print(text_list)
elif 'itemTitle' in div_item.get('class', []):
# itemTitleを表示
print(text_list)

A 回答 (1件)

itemTitle の内容は変数 text_title に入れて、


clickCnt の内容は変数 text_count に入れて、
text_count が条件を満たす場合にだけ text_title を出力しましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報