如何解析div字符串中的数字?

时间:2016-06-10 06:02:28

标签: python-2.7 beautifulsoup

我正在尝试抓取一个网站并抓住下面“data-itemId”字段中的数字(1234567):

<div class="submission" data-itemId="1234567" data-membershipId="00000" data-page="0">
  <div class="image Image">
    <img data-imageurl="test.png" src="test.png" class="img_lightbox" alt="Test" width="455" />
    <p class="lightboxExtra cf">
      <span class="title">Test-</span>
      <span class="description"></span>
      <a href="/test?itemId=1234567">PERMALINK <i class="fa fa-link"></i></a>
    </p>
  </div>
  <div class="details">
    <a href="/Test?itemId=1234567">Test-</a>
  </div>
  <div class="meta cf">
    <div class="info">
      <p>Submitted by: <a class="submittedBy" data-membershipId="00000" href="/test?id=00000">TestUser</a>
      </p>
      <p>Source: <a href="test.png" target="_blank" class="externalLink exempt">media.tumblr.com</a>
      </p>
      <p class="actions">
        <a href="" class="trigger_report" data-itemId="1234567" data-membershipId="00000">Report</a>
        <a href="/test/0000000" class="btn_modify exempt">Modify</a>
      </p>
    </div>
    <div class="light " data-itemId="1234567">
      <span class="lightNumber">469</span>
    </div>
  </div>
</div>

现在我有了这段代码,可以帮助我找到一个也包含相同数字的网址:

from bs4 import BeautifulSoup
import requests

URL = "https://www.test.com"
URLScraped = requests.get(URL)
soup = BeautifulSoup(URLScraped.text, 'lxml')

for Submission in soup.find_all('div', class_='submission'):
    for ID in Submission.find_all('a'):
        print ID.get('href')

输出如下内容:

  

/测试?的itemId = 1234567

     

/测试?的itemId = 1234567

     

/测试?ID = 0000000

     

http://test.com/test.png

我知道这样做是因为我正在使用的代码只是在div'submission'中搜索看起来像URL的任何内容。但是,我希望能够从'data-itemId'中获取数字(在这种情况下为1234567),如html代码的第一行所示。请记住,有多个提交div,所以我试图将'data-membershipId'中的所有数字都放到一个数组中。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

for Submission in soup.find_all('div', 'submission'):
    print Submission['data-itemid']

你把我和你的最后一句话弄糊涂了:

  

我试图从数据成员身份获取所有号码&#39;成阵列

所以你想要&#39; data-membershipId&#39;在一个数组?我问过,因为你提到了“data-itemId&#39;在其他地方。