如何提取JavaScript代码并仅解析HTML

时间:2015-07-17 17:02:38

标签: javascript python html beautifulsoup

我正在学习如何编程,我想刮掉一个减去javascript代码的网页。我正在读一本书的例子。下面的代码应该只返回网站上的html代码,但它只返回网站的标题和底部的一些JavaScript代码。有人可以告诉我哪里出错了吗? 欢呼声。

import urllib2 
from bs4 import BeautifulSoup

url = "http://www.theurl.com/"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "html.parser")

[x.extract() for x in soup.find_all('script')]

print soup.get_text()

这是它在标题后返回的内容。

var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-11092338-1']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

1 个答案:

答案 0 :(得分:1)

您是否尝试过打印soup.contents?因为当您打印soup.get_text()时,它应相对打印文本。请尝试以下代码。

import urllib2 
from bs4 import BeautifulSoup

url = "http://www.theurl.com/"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "html.parser")

[x.extract() for x in soup.find_all('script')]

html =soup.contents
for i in html:
    print i