千家信息网

如何使用python抓取糗事百科笑话

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章将为大家详细讲解有关如何使用python抓取糗事百科笑话,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。抓取流程:传入参数起始url和输出文件名称,使用url
千家信息网最后更新 2025年11月08日如何使用python抓取糗事百科笑话

这篇文章将为大家详细讲解有关如何使用python抓取糗事百科笑话,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

抓取流程:传入参数起始url和输出文件名称,使用urllib2对页面进行抓取,每次抓取一个页面,循环抓取,直到最后一页。使用正则表达式对抓取到的页面内容进行提取,并保存到文件中。程序如下:

# -*- coding: utf-8import urllib2import urllibimport re,osimport timeclass Joke:    #初始化数据    def __init__(self,start_url,out_put_file):        self.start_url = start_url        self.out_put_file = out_put_file        self.page = 2        self.user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'        self.headers = { 'User-Agent' : self.user_agent }    #获取页面内容的方法    def get_cotent(self,page):        try:            url = self.start_url + str(page) + '/?s=4955352'            request = urllib2.Request(url,headers=self.headers)            response = urllib2.urlopen(request)            act_url = response.geturl()            print 'init url=',url,'act url=',act_url            if url == act_url:                content = response.read()                return content            else:                return None        except urllib2.URLError, e:            if hasattr(e,"reason"):                print u"连接糗事百科失败,错误原因",e.reason                return None    #传入页面代码,返回笑话内容    def get_joke(self,page):        joke_content = self.get_cotent(page)        str = ''        if not joke_content:            print "抓取完毕"            return None        pattern = re.compile('
.*?

(.*?)

.*?' +'
.*?(.*?)',re.S) items = re.findall(pattern,joke_content) for item in items: str = str + '发布人:' + item[0] + '\n' + '发布内容:' + '\n' + item[1] + '\n'+ '\n' return str #讲抓取到的笑话保存到文件的方法 def writeStr2File(self,out_put_file,str1,append = 'a'): # 去掉文件,保留路径。比如 'a/b/c/d.txt' 经过下面代码会变成 'a/b/c' subPath = out_put_file[:out_put_file.rfind('/')] # 如果给定的路径中,文件夹不存在,则创建 if not os.path.exists(subPath): os.makedirs(subPath) # 打开文件并将 str 内容写入给定的文件 with open(out_put_file, append) as f: f.write(str1.strip()+'\n') #开始抓取页面内容,每次抓取一个页面,直到抓取完毕所有页面 def start_crawl(self): while True: joke_str = self.get_joke(self.page) if not joke_str: break time.sleep(1) #print(joke_str) self.writeStr2File(self.out_put_file,joke_str) self.page+=1spider = Joke('http://www.qiushibaike.com/hot/page/','d:/python/test/out.txt')spider.start_crawl()

python的五大特点是什么

python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。

关于"如何使用python抓取糗事百科笑话"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

页面 内容 文件 程序 百科 糗事 代码 篇文章 语言 对象 方法 更多 特点 路径 运行 不错 实用 强大 自由 二进制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 怎样在dna数据库找人 极数宝数据库产品叫什么 自贡互联网科技术公司 网络安全明文加密课程设计 数据库可以分析不同的系统 林源网络技术 购买软件开发票应该选什么明细 山东网络技术专业哪个大学有 国立大学网络安全专业 学网络安全毕业后去哪找工作 普陀区互联网教育科技服务保障 db数据库是谁开发的 网络安全管理评论 徐州可视化智慧园区软件开发 高级软件开发证书能抵税吗 服务器防毒软件 自查网络安全系统 我的世界单方块服务器攻略 我的世界2b2t服务器几点进入最好 不同地区数据库同步 网络安全知识竞赛答案初中组 大话手游服务器合并 河源软件开发制作 网络安全360回归a股 畜牧中心网络安全应急处置方案 sq数据库多表查询 软件开发服务资质三级认证 四川交友软件开发定制费用 成都ar软件开发报价 为什么战地一搜不到服务器
0