我正在学习如何编程,我想刮掉一个减去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);
})();
答案 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