用Python 3000 写点有用的东西 - 解析网页

读网页

1. 打印出网页

import urllib.request
url = 'http://www.google.cn/'
f = urllib.request.urlopen(url)
try:
for line in f.readlines():
print(line)
finally:
f.close()

显示出来的比较乱,尤其是中文没有显示出来。

2. 解决中文问题
[quote]hello.txt
中文显示测试
中文![/quote]

f = open("c:/hello.txt")
try:
for line in f:
print(line)
finally:
f.close()

看来直接显示中文没有问题。

3. 尝试decode

import urllib.request
url = 'http://www.google.cn/'
f = urllib.request.urlopen(url)
try:
for line in f.readlines():
print(line.decode('cp936'))
finally:
f.close()

搞定!'cp936'是什么?有人说就是指系统里第936号编码格式,也就是GB2312。也有人说就是GBK。Anyway,正常显示出来了。下一步尝试用html.parser — Simple HTML and XHTML parser

4.用html.parser
顾名思义,html.parser就是用来解析HTML文本文件的。是Python标准库之一。

import urllib.request
from html.parser import HTMLParser

url = 'http://www.google.cn/'
f = urllib.request.urlopen(url)
source = f.read().decode("cp936")

parser = HTMLParser()
parser.feed(source)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值