我正在尝试抓取一个网站并抓住下面“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
我知道这样做是因为我正在使用的代码只是在div'submission'中搜索看起来像URL的任何内容。但是,我希望能够从'data-itemId'中获取数字(在这种情况下为1234567),如html代码的第一行所示。请记住,有多个提交div,所以我试图将'data-membershipId'中的所有数字都放到一个数组中。
有什么建议吗?
答案 0 :(得分:0)
你可以这样做:
for Submission in soup.find_all('div', 'submission'):
print Submission['data-itemid']
你把我和你的最后一句话弄糊涂了:
我试图从数据成员身份获取所有号码&#39;成阵列
所以你想要&#39; data-membershipId&#39;在一个数组?我问过,因为你提到了“data-itemId&#39;在其他地方。