BeautifulSoup没有按预期阅读部​​分标签

时间:2017-07-11 13:46:40

标签: python web-scraping beautifulsoup

从edition.cnn.com/?refresh=1

获取数据进行测试
<section class="zn--idx-0 zn-empty"> </section>
<section class="zn--idx-1 zn-empty"> </section>
<section class="zn--idx-2 zn-empty"> </section>
<section class="zn--idx-3 zn-empty"> </section>
<section class="zn--idx-4 zn-empty"> </section>
<section class="zn--idx-5 zn-empty"> </section>
<section class="zn--idx-6 zn-empty"> </section>
<section class="zn--idx-7 zn-empty"> </section>

但它的内容如下:

{{1}}

我想要到达图像中突出显示的h2元素 image of the inspector

1 个答案:

答案 0 :(得分:1)

您尝试获取的元素不存在于原始页面上,而是使用javascript创建。如果您查看页面的来源(右键单击并选择“View Soruce”或similair),您将无法找到它。

我看到它的方式,你有三个选择,其中三号可能最符合你的需求:

1(执行javascript):为了能够解析你想要的东西,你需要在一个可以执行javascript的真实浏览器中加载页面。使用Selenium在python中执行此操作的一种方法。请参阅this post以供参考。执行Javascript后,您可以解析页面并找到您要查找的元素。

2(解析javascript):或者您可以尝试解析页面上的javascript,在那里可以找到标题:

enter image description here

要做到这一点,你可能想要使用regexp,而不是BeautifulSoup

3(解析RSS-feed)但是,Best选项可能是使用此url解析其RSS-feed: http://rss.cnn.com/rss/edition.rss(或http://edition.cnn.com/services/rss/上找到的任何其他网址)