【问题标题】:How to select element using regex and an attribute如何使用正则表达式和属性选择元素
【发布时间】:2020-03-19 07:41:32
【问题描述】:

我想抓取linkedin 仅供个人使用(需要获得朋友公司页面的帖子),我正在使用 Selenium 和 BeautifulSoup 来解决这个问题。

我发现每个帖子都是一个 div,它们都有 ember-view 类,但赞助帖子也有这个类,我不想刮,更多地挖掘 HTML 代码,我发现我可以选择用户帖子通过选择具有以下值的所有 div:urn:li:activity:XXXXXXXXXXdata-urn 属性。

但是在每个帖子 div 中,XXXXXXX 是一个不同的数字,我如何选择所有带有 data-urn=urn:li:activity:XXXXXXXXX 的 div,因为 XXXXXXXX 在每个 div 中都是一个不断变化的数字?

【问题讨论】:

    标签: python web-scraping css-selectors


    【解决方案1】:

    另一种解决方案。

    from simplified_scrapy import SimplifiedDoc,req,utils
    html='''
    <div>
      <div class="ember-view" data-urn="urn:li:activity:123">123</div>
      <div class="ember-view" data-urn=urn:li:activity:456>456</div>
      <div class="ember-view" data-urn=urn:li:activity:789>789</div>
      <div class="ember-view">other</div>
    </div>
    '''
    doc  = SimplifiedDoc(html)
    # First way
    divs = doc.getElementsByReg('data-urn[\s"=]+urn:li:activity:[\d]+',tag="div").text
    print (divs)
    # Second way
    divs = doc.selects('div.ember-view').containsReg('urn:li:activity:[\d]+',attr="data-urn").text
    print (divs)
    

    结果:

    ['123', '456', '789']
    ['123', '456', '789']
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2013-10-08
      • 2012-11-12
      • 2011-12-18
      • 2015-11-25
      • 1970-01-01
      相关资源
      最近更新 更多