python爬取内容乱码_【提问】PYTHON 爬取下来的中文数据显示乱码

这篇博客主要讨论了Python爬虫在抓取网页内容时遇到的中文乱码问题。作者通过示例代码展示了如何使用`decode('utf-8')`来正确解码网页内容,并将GBK编码的字符串转换为UTF-8,从而避免乱码出现。文章着重介绍了在处理网页数据时的编码转换方法,对于理解Python爬虫中字符编码的重要性提供了实例。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

源码:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import urllib

import urllib2

import re

import thread

import time

class FH:

def __init__(self):

self.pageIndex = 1

self.user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64)'

self.headers = {'User-Agent' :self.user_agent}

self.list = []

def getPage(self,pageIndex):

try:

url = 'http://app.finance.ifeng.com/list/stock.php?t=ha&f=chg_pct&o=desc&p=' + str(pageIndex)

request = urllib2.Request(url,headers=self.headers)

response = urllib2.urlopen(request)

pageCode = response.read().decode('utf-8')

return pageCode

except urllib2.URLError,e:

if hasattr(e,"reason"):

print "error",e.reason

return None

def getPageItems(self,pageIndex):

pageCode = self.getPage(pageIndex)

if not pageCode:

print "page load error"

return None

pattern = re.compile('

(.*?).*?target="_blank">(.*?)',re.S)

items = re.findall(pattern,pageCode)

pagelist = []

for item in items:

pagelist.append([item[0].strip(),item[1].strip(),item[2].strip()])

a=item[2]

a=a.encode('gbk')

print type(a)

print(item[0],item[1],a)

return pagelist

def loadPage(self):

if len(self.list)<2:

pagelist = self.getPageItems(self.pageIndex)

if pagelist:

self.list.append(pagelist)

self.pageIndex +=1

def start(self):

print u'正在读取'

self.loadPage()

nowPage = 0

pagelist = self.list[0]

while nowPage<15:

nowPage +=1

del self.list[0]

self.loadPage()

spider = FH()

spider.start()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值