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