【问题标题】:BeautifulSoup not finding allBeautifulSoup 没有找到所有
【发布时间】:2016-05-27 11:27:27
【问题描述】:

我有以下源代码尝试解析网页,但是,它似乎没有找到“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不是查看网页时的样子

任何帮助表示赞赏

【问题讨论】:

    标签: python python-2.7 beautifulsoup html-parsing


    【解决方案1】:

    问题出现在find方法是因为registerHistoryTab不是查看网页时的样子

    永远不要期望requests 返回的 HTML 与您在浏览器中看到的相同。当您处理 HTML 解析时,请使用您在响应中获得的内容以及您在浏览器中看到的内容。

    请注意,在这种情况下,只需将解析器从 html.parser 切换到 lxml 即可解决问题:

    soup = BeautifulSoup(html, 'lxml')
    

    现在我看到打印的是 64 而不是 2

    请注意,这需要安装lxmlpip install --upgrade lxml

    另见:

    【讨论】:

    • “以及您在浏览器中看到的内容”...应该是“并且不是您在浏览器中看到的内容”吗?
    猜你喜欢
    • 2018-03-28
    • 2015-02-05
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多