我想抓一个网页,所以我尝试下载所有:图片,.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">
还有更多。但是,当我运行我的代码时,它不会打印任何东西。问题是:我做错了什么?
答案 0 :(得分:2)
如果您仅在您发布的HTML上运行代码,则可以正常运行。
如果您在脚本中提取nasa.gov,则无法正常工作,因为该页面的实际来源不包含这些元素。有一堆内联<style>
元素,其中包含@include
个。可能在加载页面后使用Javascript添加<link>
元素。