爬虫 内涵段子

import urllib2
import urllib
import re

class spilder:
	def __init__(self):
		self.page=1#初始页是1
		self.switch=True#如果是True就开始爬

	def loadpage(self):
		"""下载页面"""
		print u"正在下载页面...."
		url="http://www.isocialkey.com/article/list_5_"+str(self.page)+".html"
		print url
		headers={"User-Agent":" Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"}
		request=urllib2.Request(url,headers=headers)
		response=urllib2.urlopen(request)
		html=response.read()

		#将正则匹配对象应用到html源码字符串中,返回这个页面的所有段子的列表
		pattern=re.compile('<div\sclass="f18 mb20">(.*?)</div>',re.S)
		content_list=pattern.findall(html)

		#调用dealpage()替换掉段子里的杂七杂八
		self.dealpage(content_list)

	def dealpage(self,content_list):
		"""处理爬来的页面中的段子
		content_list:每页的段子列表集合"""
		print u"正在处理页面......"

		for item in content_list:
		#将集合中的每个段子进行处理,替换掉多余的符号
			item=item.replace("<p>","").replace("</p>","").replace("<br>","").replace("<br />","")
			self.writepage(item)

	def writepage(self,item):
		"""把每一条段子写入文件里
		item:处理后的每一条段子"""
		print u"正在保存段子"
#写入文件内
		with open("duanzi.txt","a") as f:#a是可读可写,要是用w的话,duanzi.txt中的内容每次都会被下一个覆盖
			f.write(item)

	def duanzispilder(self):
		"""控制爬虫的进行"""
		while(self.switch):
			self.loadpage()
			command=raw_input(("如果继续爬取,请输入回车(退出输入quit)").encode("gb18030"))
			if command=="quit":
				self.switch=False#变成False就可以结束爬取
			self.page+=1#page自加
		print u"谢谢使用...."

if __name__=="__main__":
	we=spilder()
	we.duanzispilder()

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值