urllib2 获取乱码字符串而不是页面源
Urllib2 get garbled string instead of page source
当我使用 urllib2 抓取 webpage 时,我无法获取页面源,而是一个乱码字符串,我无法理解它是什么。我的代码如下:
url = 'http://finance.sina.com.cn/china/20150905/065523161502.shtml'
conn = urllib2.urlopen(url)
content = conn.read()
print content
谁能帮我找出问题所在?非常感谢。
更新:我想你可以运行上面的代码得到我得到的。以下是我在 python:
中得到的
{G?0????l???%?C0 ?K?z?%E
|?B ??|?F?oeB?'??M6?
y???~???;j????H????L?mv:??:]0Z?Wt6+Y+LV? VisV:캆P?Y?,
O?m?p[8??m/???Y]????f.|x~Fa]S?op1M?H?imm5??g?????k?K#?|?? ? ????????p:O
??(?P?FThq1??N4??P???X??lD???F???6??z?0[?}??z??|??+?pR"s? Lq??&g#?v[((J~??w1@-?G?8???'?V+ks0?????%???5)
这就是我的预期(使用 curl):
<html>
<head>
<link rel="mask-icon" sizes="any" href="http://www.sina.com.cn/favicon.svg" color="red">
<meta charset="gbk"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
这是使用 requests
和 BeautifulSoup
获取源信息的可能方法
import requests
from bs4 import BeautifulSoup
#Url to request
url = "http://finance.sina.com.cn/china/20150905/065523161502.shtml"
r = requests.get(url)
#Use BeautifulSoup to organise the 'requested' content
soup=BeautifulSoup(r.content,"lxml")
print soup
当我使用 urllib2 抓取 webpage 时,我无法获取页面源,而是一个乱码字符串,我无法理解它是什么。我的代码如下:
url = 'http://finance.sina.com.cn/china/20150905/065523161502.shtml'
conn = urllib2.urlopen(url)
content = conn.read()
print content
谁能帮我找出问题所在?非常感谢。
更新:我想你可以运行上面的代码得到我得到的。以下是我在 python:
中得到的{G?0????l???%?C0 ?K?z?%E |?B ??|?F?oeB?'??M6? y???~???;j????H????L?mv:??:]0Z?Wt6+Y+LV? VisV:캆P?Y?, O?m?p[8??m/???Y]????f.|x~Fa]S?op1M?H?imm5??g?????k?K#?|?? ? ????????p:O ??(?P?FThq1??N4??P???X??lD???F???6??z?0[?}??z??|??+?pR"s? Lq??&g#?v[((J~??w1@-?G?8???'?V+ks0?????%???5)
这就是我的预期(使用 curl):
<html>
<head>
<link rel="mask-icon" sizes="any" href="http://www.sina.com.cn/favicon.svg" color="red">
<meta charset="gbk"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
这是使用 requests
和 BeautifulSoup
import requests
from bs4 import BeautifulSoup
#Url to request
url = "http://finance.sina.com.cn/china/20150905/065523161502.shtml"
r = requests.get(url)
#Use BeautifulSoup to organise the 'requested' content
soup=BeautifulSoup(r.content,"lxml")
print soup