BeautifulSoup - 获取div的属性我正在迭代

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (92)

我正在使用BeautifulSoup来解析VC网站上的公司列表。我找到了正确的迭代元素,但我似乎无法自己获取这些元素的数据。

这是我要经历的示例HTML:

<div id="content" class="site-content">
    <main id="primary" class="content-area" role="main">
        <header class="page-header">
        <main id="portfolio-landing-company-list" class="page-content">
            <section id="portfolio__list--grid" class="portfolio__list--all">
            <div class="company company-stage--venturegrowth company-type--enterprise company--single-company">
                    <div class="company__thumbnail company__thumbnail-link">
                        <a href="http://www.domain1.com" title="Company1" target="_blank">
                    </div>      
            </div>
            <div class="company company-stage--seed company-type--bio company--single-company">
                    <div class="company__thumbnail company__thumbnail-link">
                        <a href="http://www.domain2.com" title="Company2" target="_blank">
                    </div>
            </div>

这就是我目前使用BeautifulSoup的方式,这部分工作得很好

portfolio = soup.find('div', attrs={'class': 'portfolio-tiles'})
for eachco in portfolio.find_all('article'):
  companyname = eachco.a['title']
  companyurl = eachco.a['href']

但我想要做的是从这里抓取类元素

<div class="company company-stage--venturegrowth company-type--enterprise company--single-company">
or
<div class="company company-stage--seed company-type--bio company--single-company">

(列表中的每个公司有多种变体)

我试过迭代:

portfolio = soup.find('div', attrs={'class': 'portfolio-tiles'})
for eachco in portfolio.find_all('article'):
  companyattributes = eachco.div['class']

但那会显示一排:

['company__thumbnail', 'company__thumbnail-link']

(又名,低于我正在寻找的水平)

如何迭代所有结果但是为每个结果获取类元素? 我觉得我错过了一些非常基本的东西,但是会很感激任何帮助,弄清楚那是什么东西!

提问于
用户回答回答于

这就是你要找的东西:

for i in range(len(soup)):
     print(soup.select('div[class*="stage"]')[i].attrs['class'])

输出

   ['company', 'company-stage--venturegrowth', 'company-type--enterprise', 'company--single-company']
   ['company', 'company-stage--seed', 'company-type--bio', 'company--single-company']y--single-company']

热门问答

录音识别sdk的录音文件如何保存?

Richel码农
推荐

1.实时语音sdk内置录音器采集音频暂不支持保存语音数据,如需要保存语音数据建议上层自行采集音频数据。

2.实时语音识别sdk不支持暂停&继续操作,停止识别后重新调用start即开始识别。

云通讯im 本地消息存储数据库能否开放使用,要做一个本地聊天记录搜索功能?

推荐
您好,首先核实下您是否咨询app本地存储?App 本地存储;默认情况下,SDK 内部会对收到的消息进行存储,无需用户进行存储。用户可调用接口获取本地消息(无网络操作),另外,通过 getMessage 接口,也会获取本地消息,如果本地消息存在断层,会通过漫游消息补全。消息存储详参...... 展开详请

服务器操作台不是Windows咋换?

蒋小爱

腾讯云 · 技术支持 (已认证)

推荐
您好,您参考重装Windows系统;仅支持中国大陆地域(不含香港)。例如,Linux 重装为 Windows,Windows 重装为 Linux 。 登陆控制台 图片.png 选择【公共镜像】中Windows ,配置Windows密码,点击【开始重装】即可更换Windows 图片...... 展开详请

Golang云函数怎么做CORS?

Alfred

腾讯云 · 高级产品经理 (已认证)

推荐
设置响应 header 主要也就是相应数据结构, https://github.com/tencentyun/scf-go-lib/blob/master/cloudevents/scf/apigw.go APIGatewayProxyResponse 结构中的 header 字...... 展开详请

IM如何在离线登录后获取到多个会话的未读消息数量?

风子猪未来的前端开发工程师!成长的路上加油!勿忘初心方得始终
推荐
您好,建议按照以下步骤操作: 1. 离线上线后调用 webim.syncMsgs(updateUnreadCount); // 同步未读消息。 2. 在updateUnreadCount 回调函数中调用 webim.MsgStore.sessMap();获取会话列表,返回值是...... 展开详请

腾讯云短信服务有没有提供接口?

滑稽园扛把子

Swoole Inc · PHP工程师 (已认证)

As a PHP Developer
推荐
有接口的,个人认证用户不支持使用 API 申请短信模板,企业用户可以。详情文档:https://cloud.tencent.com/document/product/382/5817 URL 示例 POST https://yun.tim.qq.com/v5/tlssmssvr...... 展开详请

所属标签

扫码关注云+社区

领取腾讯云代金券