首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python漂亮汤贯穿整个跨度

Python漂亮汤贯穿整个跨度
EN

Stack Overflow用户
提问于 2020-12-02 09:39:16
回答 1查看 588关注 0票数 0

下面的代码返回大量的span结果,我如何循环遍历每个跨度(其中有6个,参见下面的一个例子)来提取‘数据-股票’?我注意到没有span类,因此,为什么我被困在如何循环这个问题上。

非常感谢!

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
url = "https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/playstation-5/playstation-5-games/sackboy-a-big-adventure-ps5/p/191447"
    user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14'
    headers = {'User-Agent': user_agent,
               'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'}
    page = requests.get(url, headers=headers)
    soup = BeautifulSoup(page.content, "html5lib")

    gear = soup.find_all('div', class_ = 'instoreMessage')
    print(gear)

生产:

[

代码语言:javascript
复制
                                                                                                                                          Available only in store.                                                                           
代码语言:javascript
复制
<span data-channel="CLICK_AND_COLLECT" data-location="" data-stock="PREORDER" style="display:none">
    
    
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
            <tbody>
                <tr>
                    <td class="check_i" valign="top" width="3%"><i class="fa fa-check green-check"></i></td>
                    <td>Smyths <a data-target="#price-promise-mdl" data-toggle="modal" style="cursor: pointer;">Pre-order Price Promise</a></td>
                </tr>
            </tbody>
        </table>
    
    
</span>

/div

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-02 09:59:48

从您的gear元素(只有一个)中找到所有的<span>标记。然后遍历该列表并获取data-stock属性:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

url = "https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/playstation-5/playstation-5-games/sackboy-a-big-adventure-ps5/p/191447"
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14'
headers = {'User-Agent': user_agent,
           'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'}
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, "html5lib")

gear = soup.find_all('div', class_ = 'instoreMessage')
print(gear)

spans = gear[0].find_all('span')
for span in spans:
    print (span['data-stock'])

输出:

代码语言:javascript
复制
CCUNAVAILABLEONLYPREORDER
PREORDER
PREORDER
PREORDER
PREORDER
INSTOCK
INSTOCK
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65105515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档