打印Beautiful Soup值返回的内容与网站上显示的值不同

时间:2017-01-12 06:10:43

标签: html python-2.7 parsing beautifulsoup

我已经学习了几个月的python并且正在练习一些网络抓取。为了获得一些参考资料,我一直在使用亚马逊的书(O'Reilly),它有一个让我有点困惑的例子。

代码如下:

bsObj = BeautifulSoup(urlopen("https://isitchristmas.com"), "html.parser")
print (bsObj.find("a", {"id":"answer"}).attrs['title']) #returns "IFTTT"

但是,我把它与页面上的代码进行了比较,你可以看到标题上的值不是IFTTT,它的“NO”

<a id="answer" href="https://ifttt.com/isitchristmas" target="_blank" title="NO">NO</a>

总结一下,如果我看同一个标签的相同属性,我不明白为什么它给了我不同的值。

我唯一能看到的是评论:

<!--
    Initial 'title' and noscript values are server-side fallbacks,
    calculated with UTC, for clients who do not have JS enabled.
  -->

不过,如果有人能帮助我理解这一点或指出我正确的方向,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

print (bsObj.find("a", {"id":"answer"}).text)

这是HTML代码:

<a id="answer" href="https://ifttt.com/isitchristmas" target="_blank" title="IFTTT">
<noscript>NO</noscript>

您需要的是string标记,而不是title属性。