美文网首页
python爬取糗事百科

python爬取糗事百科

作者: sixkery | 来源:发表于2018-08-14 20:52 被阅读4次

闲来无事,找点段子一乐呵,就逛到糗事百科,这次爬取没有什么难度,唯一值得说道的是增加了一点点的代码健壮性。

import requests
from lxml import etree


class Spider():

    def __get_page(self,url,headers):
        try:
            response = requests.get(url,headers=headers)
            if response.status_code == 200:
                return response.text
            else:
                return None
        except Exception:
            return None

    def __parse_page(self,html):
        results = []
        data = etree.HTML(html)
        items = data.xpath('//div[@id="content-left"]/div')
        for item in items:
            #获取作者
            author = item.xpath('./div[1]/a[2]/h2/text()')
            if author:
                results.append(author[0].strip())
            else:
                results.append('匿名用户')

            #获取内容
            content = item.xpath('./a[1]/div/span/text()')
            if content:
                results.append(''.join(content).replace('\n',''))
            else:
                results.append('此用户没有内容')

            #获取好笑数
            number = item.xpath('./div[2]/span[1]/i/text()')
            if number:
                results.append(number[0])
            else:
                results.append('0')

        return results


    def __save_to_txt(self,data):
        with open('data.txt','w',encoding='utf-8') as f:
            f.write(data)

    def run(self):

        for i in range(1,13):
            url ='https://www.qiushibaike.com/text/page/' + str(i)
            headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'
                                     ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
                       }
            html = self.get_page(url,headers)
            result = self.parse_page(html)
            self.save_to_txt(str(result))

#实例化类
spider = Spider()
spider.run()
  • 其中类里的方法是私有方法,外部不可调用。
  • 解析网页部分增加了判断获取字段为空的处理方法。
  • 欢迎大家跟我交流学习。

相关文章

  • nice,64个python爬虫入门项目,学会轻轻松松爬取资源

    爬虫在手,资源我有,看完这些,你还敢说你不会爬吗?(滑稽) 1.爬取糗事百科 2.爬取妹子图 3.Python ...

  • python 3  爬糗事百科

    python 3 爬糗事百科(来源Python爬虫学习,实战一糗事百科(2017/7/21更新)) 关于head...

  • 爬虫项目

    64个爬虫项目链接 1.爬取糗事百科 2.爬取妹子图 3.Python 岗位分析报告 4.Selenium介绍 5...

  • Python爬虫实战

    注:采转归档,自己学习查询使用 Python爬虫实战(1):爬取糗事百科段子Python爬虫实战(2):百度贴吧帖...

  • Python爬虫(十七)_糗事百科案例

    糗事百科实例 爬取糗事百科段子,假设页面的URL是: http://www.qiushibaike.com/8hr...

  • Python爬虫教程一爬取糗事百科段子

    这次为大家带来,Python爬取糗事百科的小段子的例子。 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一...

  • Python 学习——每天写点小东西-1

    最近开始学习python,这里就作为学习记录,记录自己的python之路。本条爬虫爬取的是糗事百科的24小时热门里...

  • python爬虫

    1、爬取糗事百科 代码: 2、爬取淘宝手机信息 代码: 3、爬取中国大学排名 代码: 4、爬取豆瓣top250 代码:

  • python爬取糗事百科

    闲来无事,找点段子一乐呵,就逛到糗事百科,这次爬取没有什么难度,唯一值得说道的是增加了一点点的代码健壮性。 其中类...

  • python爬取糗事百科

    以下使用面向过程版的代码 面向对象版

网友评论

      本文标题:python爬取糗事百科

      本文链接:https://www.haomeiwen.com/subject/ivembftx.html