亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用python進行bs4過濾

使用python進行bs4過濾

翻過高山走不出你 2023-12-29 15:55:29
我正在嘗試編寫一個檢查 Steam 商店的腳本,但在過濾掉代碼中沒有折扣的所有列表時遇到問題。我只想保留帶有 span 標簽的列表以及<span>-percentage</span>其中的列表,而不是沒有的列表。這是我的代碼:from urllib.request import urlopenfrom datetime import dateimport requests as rqinp = str(input('what would you like to search up?'))w = ('https://store.steampowered.com/search/?term=' + inp)page = rq.get(w)soup = bsoup(page.content, 'html.parser')soup.prettify()sales = soup.find_all('div', class_="responsive_search_name_combined")for sale in sales:    p = soup.find('div', class_="col search_price responsive_secondrow")    d = soup.find_all('div', class_="col search_discount responsive_secondrow")    n = soup.find('span', class_="title")    if None in (d, n, p):        continue    print(d)和輸出(包含我想要過濾掉的東西/我想要保留的東西)<span>-16%</span></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"><span>-19%</span></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow"></div>, <div class="col search_discount responsive_secondrow">等等,我嘗試替換d = soup.find_all('div', class_="col search_discount responsive_secondrow")為,d = soup.find_all('span', string="-16%")看看是否有效,但沒有。我想保留 span 標簽,但不保留 div 標簽,有人可以幫忙嗎?
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您只需try-except在最后一個for循環中添加一個塊即可解決您的問題。這是完整的代碼:


from urllib.request import urlopen

from datetime import date

import requests as rq

from bs4 import BeautifulSoup as bsoup

inp = str(input('what would you like to search up?'))

w = ('https://store.steampowered.com/search/?term=' + inp)

page = rq.get(w)

soup = bsoup(page.content, 'html.parser')

soup.prettify()

sales = soup.find_all('div', class_="responsive_search_name_combined")


final = []


for sale in sales:

    p = soup.find('div', class_="col search_price responsive_secondrow")

    d = soup.find_all('div', class_="col search_discount responsive_secondrow")

    n = soup.find('span', class_="title")


    try:

        for element in d:

            span = element.span

            if span:

                final.append(span.text)

    except:

        pass

print(final)

輸出:


what would you like to search up?>? among us

['-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%', '-10%', '-25%']


查看完整回答
反對 回復 2023-12-29
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號