Python 官方文档:入门教程 => 点击学习
这篇文章将为大家详细讲解有关如何使用python抓取糗事百科笑话,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。抓取流程:传入参数起始url和输出文件名称,使用urllib2对页面进行抓取,每次抓取一个页面
这篇文章将为大家详细讲解有关如何使用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('<div class="author clearfix">.*?<h3>(.*?)</h3>.*?' +'<div class="content">.*?<span>(.*?)',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的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如c++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。
关于“如何使用python抓取糗事百科笑话”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: 如何使用python抓取糗事百科笑话
本文链接: https://lsjlt.com/news/232781.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0