初学Python----urllib2模块与正则表达式组合而成的小爬虫

本文分享了一段改进后的Python代码,用于从搜狐网站爬取小说内容。原代码已不适用于新版网页,此版本经过调整后能有效运行并提供小说文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      最近开始学Python,在http://www.the5fire.com/python-sohuspider-software-people.html这个博客上看到作者写的简单的从搜狐上爬小说的爬虫,正好学习学习练练手,发现代码是几年前的,而搜狐网早已经更新了网页,原代码已经不能用了,正好我来改改。下面是改过之后的代码,亲测有效:

#!/usr/bin/python

import re
import urllib2
import sys

def getPage(url,offset = '3399'):
	realurl = "%s%s%s" % (url,offset,".html")
	print realurl
	content = urllib2.urlopen(realurl).read()

	content_re = re.compile(r'<div class="chapter"></div>\n(.*[\n])+?[\t]</div>')
	try:
		content_list = content_re.search(content,re.S).group(0)
	except Exception,e:
		print str(e)
		return
	contentresult = content_list

	fp = open(r'renxingruanjian.txt','a')

	contentresult = contentresult.replace('<div class="chapter"></div>','')
	contentresult = contentresult.replace('</p><p>','')
	contentresult = contentresult.replace('</p></p>','')
	contentresult = contentresult.replace('<p><p>','')
	contentresult = contentresult.replace(' ','')
	contentresult = contentresult.replace('		','')
	contentresult = contentresult.replace('</div>','')
	#content = content.replace(' ','')
	#content = content.replace('		','')
	fp.write(contentresult + '\n')
	fp.flush()
	fp.close()

def getBook(url,startoffset,endoffset):
	while startoffset < endoffset:
		getPage(url,offset = str(startoffset))
		startoffset += 1

if __name__ == '__main__':
	getBook(url = 'http://lz.book.sohu.com/chapter-121',startoffset = 3399,endoffset = 3426)




爬下来的小说格式非常粗糙,有待改进!

感谢原作者!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值