我不能用美肌刮任何东西

2024-10-01 09:38:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我用beauthulsoup来抓取一些网页内容。在

我正在学习这个示例代码,但我总是得到“无”的响应。在

代码:

import urllib2
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://www.velocidadcuchara.com/2011/08/helado-platano-light.html').read())

post = soup.find('div', attrs={'id': 'topmenucontainer'})

print post

你知道我做错什么了吗?在

谢谢!!在


Tags: 代码fromimportcomhttp示例wwwurllib2
3条回答

我认为你没有做错什么。在

这是第二个脚本标记,它混淆了beauthoulsoup。标签如下所示:

<script type='text/javascript'>
<! // ><![CDATA[//><! 
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
       var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
       var imgTitle = (myImage.title) ? 
                     "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
       var imgStyle = "display:inline-block;" + myImage.style.cssText
       var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
       myImage.outerHTML = strNewHTML     
    }
}
// ><!]]>
</script>

但BeatifulSoup似乎认为它仍在注释或其他内容中,并将文件的其余部分作为脚本标记的内容。在

尝试:

^{pr2}$

你就会明白我的意思了。在

如果删除CDATA,则应该会发现页面解析正确:

soup = BeautifulSoup(
    urllib2.urlopen('http://www.velocidadcuchara.com/2011/08/helado-platano-light.html')
    .read()
    .replace('<![CDATA[', '').replace('<!]]>', ''))

你可以尝试使用lxml库。在

lxml article

from lxml.html import parse
doc = parse('http://java.sun.com').getroot()
post = doc.cssselect('div#topmenucontainer')

你的HTML有点奇怪。但有时也不能很好的分析。在

尝试移动<head>内的第一个<link>元素,这可能会有所帮助。在

相关问题 更多 >