我已经学习了几个月的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.
-->
不过,如果有人能帮助我理解这一点或指出我正确的方向,我将不胜感激。
由于
答案 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
属性。