html中写meta会乱码,BeautifulSoup+Unicode,该死的html乱码,尽管在meta标记中指定了字符集...

我正在尝试解析http://www.olx.pt/carros-cat-378-p-1。通过更改url中的最后一个数字,我可以遍历页面。页面在meta标记的内容类型中指定ISO-8859-1。因此,我告诉你在from\u编码参数中美化组。在

然而,当我找到所有的结果时。检查汤,我发现所有东西都弄乱了。当我得到一个零结果集并切换到另一个字符集时,我试图捕捉,例如cp1252和latin1。在

我觉得很奇怪,所有的HTML都被弄乱了,而且只是时不时。我也觉得很奇怪,当这种情况发生时,我不知道使用的是哪个字符集。有人知道这里发生了什么事吗?在

代码import mechanize

import cookielib

from bs4 import BeautifulSoup

def getNewBrowser():

# create browser instance

b = mechanize.Browser()

# create a cookiejar for cookies

jar = cookielib.LWPCookieJar()

b.set_cookiejar(jar)

# prevent mechanize from simulating a 403 disallow

b.set_handle_robots(False)

# handle some other stuff

b.set_handle_equiv(True)

#b.set_handle_gzip(True)

b.set_handle_redirect(True)

b.set_handle_referer(True)

# follows refresh 0 but not hangs on refresh >0

b.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

# want debugging messages?

#br.set_debug_http(True)

#br.set_debug_redirects(True)

#br.set_debug_responses(True)

# User-Agent

b.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0')]

return b

def run():

b = getNewBrowser()

url = "http://www.olx.pt/carros-cat-378-p-"

n = 100

for i in range(1,n):

urlt = url + str(i)

b.open(urlt, timeout = 10.0)

soup = BeautifulSoup(b.response(), from_encoding="ISO-8859-1")

print "--------------------------------------------------------------------"

print "page: " + str(i)

print "--------------------------------------------------------------------"

print soup

if __name__ == '__main__':

run()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值