Python 解析 HTML

今天突然想去下点评书放到手机里听,找到个网站,放眼望去116个链接,平均一个要点五次鼠标,实在懒得去点,折腾下写一个python吧。

具体代码:

import sys, urllib, re
from BeautifulSoup import BeautifulSoup

local_type = sys.getfilesystemencoding()

for i in range(1, 2):
    url = 'http://www1.5ips.net/down_45_' + str(i) + '.htm'
    wp = urllib.urlopen(url)
    content = wp.read()
    soup = BeautifulSoup(''.join(content))
    outstr = soup.findAll('a', href=re.compile("^http://p186"))[1]
    print str(outstr).decode("UTF-8").encode(local_type)

遇到一些问题,例如Python在windows命令行里会有乱码,例如BeautifulSoup太飘逸一下适应不了等等,不过细心上网查查,试一试就好了,这个代码会提取出下载页面中的链接,接下来就是保存到文件了。需要下载116个链接的话把i的范围修改下就好。

参考链接:

Beautiful Soup 中文文档

基本的 HTML 标签

Python中文乱码
此条目发表在Python, 编程, 网络分类目录,贴了, 标签。将固定链接加入收藏夹。

Python 解析 HTML》有2条回应

  1. 匿名说:

    你的代码也有问题吧:
    应该用
    BeautifulSoup(”.join(content),fromEncoding=’utf-8′)
    print soup(‘a’,re.compile(“http://p186*”))[0][‘href’]

    • admin说:

      文章里的代码都是自己用的,可用,不保证兼容性。

      不过,要说明我是错的,最好先证明你是对的,没有头绪的敲两段代码,虽然我看得懂是在转码和加上通配符,不过实在没有心思去想你说的是啥玩意。

发表评论

邮箱地址不会被公开。 必填项已用*标注