2012-06-12 47 views
1

我进入了一个项目,我处理解析网页的HTML。所以,我拿着我的blog(博客博客 - 动态模板)并试图阅读它的内容。不幸的是,我没有看到博客网页的“实际”来源。无法找到我的博客的确切源代码

这是我观察到:

  1. 我在我的博客的文章随机点击view source,并试图找到其中的内容。我找不到任何东西。这是所有的JavaScript。

  2. 因此,我将网页保存到我的笔记本电脑,并再次检查源代码,这次我找到了内容。

  3. 我还在浏览器中使用developers tools检查了源代码,并再次找到它中的内容。现在

  4. ,我尝试了蟒蛇的方式

    import urllib 
    from bs4 import BeautifulSoup 
    
    soup = BeautifulSoup(urllib.urlopen("my-webpage-address")) 
    print soup.prettify() 
    

    我甚至没有发现在它的HTML代码的内容。

最后,为什么我无法找到在案例1的源代码的内容,4

我应该如何得到实际的HTML代码?我希望听到任何可以完成这项工作的Python库。

+0

你必须解析JavaScript,这有其他含义。 –

回答

1

内容通过JavaScript加载(AJAX)。它不在“来源”中。

在步骤2中,您正在保存产生的页面,而不是原始源代码。在第3步中,您会看到浏览器呈现的内容。

步骤1和步骤4“不起作用”,因为您正在获取页面的源代码(不包含内容)。您需要真正运行JavaScript,这对于屏幕抓取工具来说并不容易。

+0

那么,我应该如何精确提取我写入的内容呢? – Surya

+1

@Surya:你需要搜索一个“无头浏览器”框架或lib,它可以像浏览器一样呈现页面,包括javascript。 Phantomjs或ghost或casperjs – jdi

+1

或者,如果您只需拥有原始内容就可以了,那么您可以通过使用适当的获取或发布数据击打ajax端点来自己发出ajax请求。 –

相关问题