千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关如何使用python抓取糗事百科笑话,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。抓取流程:传入参数起始url和输出文件名称,使用url
千家信息网最后更新 2026年11月02日如何使用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安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 平安科技 互联网 美国互联网黑科技 互联网科技小额贷款 丰台科技园 互联网公司 安控科技rtu产品工业互联网 青岛中康互联网医疗科技有限公司 苏州五指互联网络科技有限 互联网科技大奖都有哪些公司 浙南科技城互联网大厦建设工程 深圳互联网科技的发展 四川互联网展示科技馆设计 从那以后互联网科技有限公司 下一代互联网重大应用科技园 科技信息时代互联网发展 杭州科技互联网公司有哪些 平安好医生打造互联网科技医疗 安徽九吞吴互联网科技有限公司 互联网科技自媒体灵感 互联网科技创业有什么好项目 互联网 科技 互联网科技金融公司 互联网 科技服务平台 无锡溥仪互联网科技有限公司 卫星互联网科技股票 互联网科技革命什么开始 互联网科技大奖都有哪些公司 想开互联网科技公司怎么样 中科明德北京互联网科技 郑州欣桑互联网科技有限公司
0