2015-04-12 64 views
0

我很好奇为什么urllib2模块返回带空体的html。我确信我在那里放置了一个正确的网址。即使我尝试使用chrome查看源代码,页面也不会显示整个html代码。以下是其中一页:http://www.firmy.cz/Velkoobchod-a-vyroba/Vyrobci-papiroveho-a-polygrafickeho-zbozi/Nakladatele-a-vydavatele?geo=0Urllib2返回带空体的html

如何解决此问题?

这是我的一段代码,但我认为问题是在其他地方根据铬显示相同的代码。

def getSoup(url): 
    req = urllib2.Request(url) 
    response = urllib2.urlopen(req) 
    page = response.read() 
    soup = BeautifulSoup(page, 'lxml') 
    return soup 

此代码返回:

... 
.. 
.. some head etc... 
<meta content="!" name="fragment"/> 
</head> 
<body class="root" id="root"></body> 
</html> 

正如你所看到的,身体是空的。

+0

任何代码?你在做什么? –

+0

我已经参加了我的问题的代码,但我认为问题是在别的地方。正如我写的,即使是一个Chrome显示不完整的源代码。 –

+0

有趣的是,我似乎得到了一些[代码](http://pastebin.com/jFixSCu9)。网站中的body标签本身对我来说也没有任何内容,可能有些JS正在做魔术。 –

回答

0

只返回response.read()和解析它卸妆换行符

url = "http://www.firmy.cz/Velkoobchod-a-vyroba/Vyrobci-papiroveho-a-polygrafickeho-zbozi/Nakladatele-a-vydavatele?geo=0" 

def getSoup(url): 
    req = urllib2.Request(url) 
    response = urllib2.urlopen(req) 
    page = response.read() 
    response.close() 
    return page 

def do_whatever_you_want_with_response(): 
    page = getSoup(url) 
    print page 
    return page 
+0

感谢您的答案,但有一个错误:page = soup.replace('\ n','') TypeError:'NoneType'对象不可调用它不起作用。 –

+0

分享你的代码。上面的代码完全适合我。 –

+0

我的错误,我有不同的代码,但它仍然是相同的。我想你不知道我的意思。问题是它没有正文返回html,身体是空的,这是不可能的。我正在努力获得这个机构。 –