BeautifulSoup 没有找到全部
BeautifulSoup not finding all
我有以下源代码试图解析网页,但是,它似乎没有找到 class "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 包含 2 个项目,其中包含以下 HTML,其中多个 div 出现 "out of nowhere",因为在页面的源代码
<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
永远不要期望 requests
返回的 HTML 与您在浏览器中看到的一样。当您处理 HTML 解析时,请处理您在响应中得到的内容以及您在浏览器中看到的内容。
请注意,在这种情况下,只需将解析器从 html.parser
切换到 lxml
即可解决问题:
soup = BeautifulSoup(html, 'lxml')
现在我看到 64
而不是 2
。
请注意,这需要安装 lxml
:pip install --upgrade lxml
。
另见:
我有以下源代码试图解析网页,但是,它似乎没有找到 class "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 包含 2 个项目,其中包含以下 HTML,其中多个 div 出现 "out of nowhere",因为在页面的源代码
<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
永远不要期望 requests
返回的 HTML 与您在浏览器中看到的一样。当您处理 HTML 解析时,请处理您在响应中得到的内容以及您在浏览器中看到的内容。
请注意,在这种情况下,只需将解析器从 html.parser
切换到 lxml
即可解决问题:
soup = BeautifulSoup(html, 'lxml')
现在我看到 64
而不是 2
。
请注意,这需要安装 lxml
:pip install --upgrade lxml
。
另见: