我有以下源代码尝试解析网页,但是,它似乎没有找到类“row dataraekker”出现的所有实例
cvr = 45963128
url = 'https://datacvr.virk.dk/data/visenhed?enhedstype=virksomhed&id=%s&soeg=%s' % (str(cvr), str(cvr))
rObject = requests.get(url)
html = rObject.content
soup = BeautifulSoup(html, 'html.parser')
registerHistoryTab = soup.find('div', class_="accordion ", id="accordion-Historisk")
dataRows = registerHistoryTab.find_all('div', class_='row dataraekker')
print len(dataRows)
registerHistoryTab 包含具有以下 HTML 的 2 项,其中多个 div 出现“不知从何而来”,因为页面源代码中并非如此
<div class="accordion " data-pdf-class="accordion hide accordion-Historisk" id="accordion-Historisk">
<div class="accordion-group accordion-wrapper">
<div class="accordion-heading">
<div>
<a class="accordion-toggle collapsed" data-parent="#accordion" data-toggle="collapse" href="#collapse_-Historisk">
<h1>Registreringshistorik<div class="text-left help_element help_acc Help-Historisk" data-pdf-class="hide"></div></h1>
</a>
</div>
<!--pdf-linje-->
</div>
<div class="accordion-body collapse" id="collapse_-Historisk">
<div class="accordion-inner" data-pdf-class="sektion">
<div class="aktive-registreringstidende">
<div class="row dataraekker">
<div class="col-sm-12" data-pdf-class="column12">
<b>04.06.2015 Ændring i personkreds</b><br>
<b>CVR-nummer:</b><p>45963128.</p><b>NAVN:</b><p>UNILEVER DANMARK A/S.</p>Adresse: Ørestads Boulevard 73, 2300 København S.<br/>Kommune: København.<br/><b>Bestyrelse:<br/></b><h2>Fratrådte:</h2><p>Jens Christian Voldmester, den 01.06.2015.</p><b>Direktion:<br/></b><h2>Fratrådte:</h2><p>Jens Christian Voldmester, (adm. dir), den 01.06.2015.</p><h2>Tiltrådte:</h2><p>Henrico Drent, (adm. dir), Burgemeester Vogelslaan 63, 5062 KN, Oisterwijk, Holland, den 01.06.2015.</p><hr> </hr></br></div>
</div><div class="row dataraekker">
<div class="col-sm-12" data-pdf-class="column12">
<b>06.03.2015 Øvrige ændringer, Ændring i personkreds</b><br>
<p><b>CVR-nummer: </b>45963128</p><p><b>Navn og adresse: </b></p></br>UNILEVER DANMARK A/S</div></div></div></div></div></div></div>
问题出现在 find 方法上,因为 registerHistoryTab 与查看网页时的情况不同
感谢任何帮助
最佳答案
The issue appears at the find method because registerHistoryTab is not as it is when viewing the web page
永远不要指望请求
返回的 HTML 与您在浏览器中看到的相同。当您处理 HTML 解析时,请使用响应中的内容以及在浏览器中看到的内容。
请注意,在这种情况下,只需将解析器从 html.parser
切换到 lxml
即可解决问题:
soup = BeautifulSoup(html, 'lxml')
现在我看到打印的是 64
而不是 2
。
请注意,这需要安装lxml
:pip install --upgrade lxml
。
另请参阅:
关于python - BeautifulSoup 未找到全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35428243/