我正在尝试提取特定的嵌套div类和相应的h3属性(工资值)。
所以,我尝试了按类方法搜索
soup.find_all('div',{'class':"vac_display_field"}
返回一个空列表。
代码段:
<div class="vac_display_field">
<h3>
Salary
</h3>
<div class="vac_display_field_value">
£27,951 - £30,859
</div>
</div>
示例here
答案 0 :(得分:-1)
首先确保您已正确实例化BeautifulSoup
对象。应该看起来像这样:
from bs4 import BeautifulSoup
import requests
url = 'https://www.civilservicejobs.service.gov.uk/csr/index.cgi?SID=cGFnZWNsYXNzPUpvYnMmb3duZXJ0eXBlPWZhaXImY3NvdXJjZT1jc3FzZWFyY2gmcGFnZWFjdGlvbj12aWV3dmFjYnlqb2JsaXN0JnNlYXJjaF9zbGljZV9jdXJyZW50PTEmdXNlcnNlYXJjaGNvbnRleHQ9MjczMzIwMTcmam9ibGlzdF92aWV3X3ZhYz0xNTEyMDAwJm93bmVyPTUwNzAwMDAmcmVxc2lnPTE0NzcxNTIyODItYjAyZmM4ZTgwNzQ2ZTA2NmY5OWM0OTBjMTZhMWNlNjhkZDMwZDU4NA=='
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser') # the 'html.parser' part is optional.
用于刮取div
标签的代码看起来是正确的(但它缺少一个右括号)。如果由于某种原因它仍然无法正常工作,请尝试以这种方式调用find_all()
方法:
soup.find_all('div', class_='vac_display_field')
如果您查看网页代码,在检查时您会发现所需的div
代码是从顶部开始的第二个代码:
因此,您的代码可以使用简单的索引表示法反映出来:
Salary_info = soup.find_all(class_='vac_display_field')[1]
然后输出文字:
for info in Salary_info:
print info.get_text()
HTH。