【发布时间】:2020-10-22 06:27:17
【问题描述】:
<li>
<strong>Company Name</strong>
":"
<span itemprop="name">PT ERA MURNI BUSANA</span>
</li>
在上面的 HTML 代码中,我试图提取公司名称,即 PT ERA MURNI BUSANA。 如果我使用单个测试链接,我可以使用我编写的单行代码获取名称:
soup.find_all("span",attrs={"itemprop":"name"})[3].get_text()
但我想从单个网页中的所有此类页面中提取信息。 所以我写了 for 循环,但它是获取详细信息。我正在粘贴我一直在尝试的需要修改的代码部分。 代码:-
for link in supplierlinks: #links have been extracted and merged with the base url
r=requests.get(link,headers=headers)
soup=BeautifulSoup(r.content,'lxml')
companyname=soup.find_all("span",attrs={"itemprop":"name"})[2].get_text()
输出如下:
{'公司名称': 'AIRINDO SAKTI GARMENT PT'}
{'公司名称': '服装'}
{'公司名称': '服装'}
我需要的是公司名称,而不是输出中弹出的服装。如何修改for循环中的代码?
【问题讨论】:
-
代码看起来不错。您可能必须通过添加 print 语句来检查汤,并检查它是否具有相同的名称和位置作为响应。
-
@Afrodille 请查看我的解决方案。
标签: python html beautifulsoup