Beautifulsoup功能在特定场景下不能正常工作



我正在尝试使用urllib2: http://frcwest.com/阅读以下url,然后搜索元重定向的数据。

中读取以下数据:
   <!--?xml version="1.0" encoding="UTF-8"?--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><meta content="0;url= Home.html" http-equiv="refresh"/></head><body></body></html>

把它读到Beautifulsoup中就可以了。然而,由于某些原因,没有一个功能适用于这个特定的恶作剧,我不明白为什么。美丽的汤在所有其他情况下对我都很有效。然而,当简单地尝试:

    soup.findAll('meta')

没有结果。

我的最终目标是跑步:

    soup.find("meta",attrs={"http-equiv":"refresh"})

但如果:

    soup.findAll('meta')

甚至不能工作,那么我就卡住了。任何对这个谜的煽动都将受到赞赏,谢谢!

是注释和doctype在这里抛出解析器,然后是BeautifulSoup。

就连HTML标签似乎都不见了:

>>> soup.find('html') is None
True

但是它仍然存在于.contents可迭代对象中。你可以用:

for elem in soup:
    if getattr(elem, 'name', None) == u'html':
        soup = elem
        break
soup.find_all('meta')
演示:

>>> for elem in soup:
...     if getattr(elem, 'name', None) == u'html':
...         soup = elem
...         break
... 
>>> soup.find_all('meta')
[<meta content="0;url= Home.html" http-equiv="refresh"/>]

相关内容

  • 没有找到相关文章

最新更新