美丽的汤 - 下载CSS项目

时间:2014-08-01 22:20:56

标签: python html css beautifulsoup

我想抓一个网页,所以我尝试下载所有:图片,.js元素以及.css元素。要下载.cc脚本,我写了一个函数:

for item in self.soup.findAll('link', {'type':'text/css','href':True}):
 print item['href']
 # do some things 

它通常效果很好,但我找到了一些页面,但是它不起作用,我无法理解为什么。例如页面:http://www.nasa.gov。如果我将在浏览器中打开此页面并将其保存为文件,我可以注意到在源代码中我有:

<link media="all" href="NASA_files/widget120.css" type="text/css" rel="stylesheet">
<link media="screen" rel="stylesheet" href="NASA_files/sayt.css" type="text/css">

还有更多。但是,当我运行我的代码时,它不会打印任何东西。问题是:我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果您仅在您发布的HTML上运行代码,则可以正常运行。

如果您在脚本中提取nasa.gov,则无法正常工作,因为该页面的实际来源不包含这些元素。有一堆内联<style>元素,其中包含@include个。可能在加载页面后使用Javascript添加<link>元素。