python爬取糗事百科

简介: 闲来无事,找点段子一乐呵,就逛到糗事百科,这次爬取没有什么难度,唯一值得说道的是增加了一点点的代码健壮性。import requestsfrom lxml import etreeclass Spider(): def __get_...

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

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()
  • 其中类里的方法是私有方法,外部不可调用。
  • 解析网页部分增加了判断获取字段为空的处理方法。
  • 欢迎大家跟我交流学习。
目录
相关文章
|
1月前
|
数据采集 JSON 数据格式
python爬虫之app爬取-charles的使用
charles 基本原理,charles抓包,分析,重发。
53 0
|
2月前
|
数据采集 存储 架构师
上进计划 | Python爬虫经典实战项目——电商数据爬取!
在如今这个网购风云从不间歇的时代,购物狂欢持续不断,一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时,“如何省钱?”成为了大家最关心的问题。 比价、返利、优惠券都是消费者在网购时的刚需,但在这些“优惠”背后已产生灰色地带。
|
4月前
|
数据采集 Python
Python爬虫:实现爬取、下载网站数据的几种方法
Python爬虫:实现爬取、下载网站数据的几种方法
201 1
|
1月前
|
数据采集 测试技术 API
python爬虫之app爬取-微信朋友圈
搭建appium环境,appium基本使用,API操作等等
79 0
|
1月前
|
数据采集 存储 数据处理
使用Python爬取豆瓣电影影评:从数据收集到情感分析
本文演示如何使用Python爬虫获取豆瓣电影《肖申克的救赎》的影评数据并进行情感分析。首先,安装requests、BeautifulSoup、pandas和TextBlob库。接着,编写爬虫抓取评论的用户名、评分和内容,存储为DataFrame。然后,利用TextBlob进行情感分析,得到情感分数。此方法有助于分析用户对电影的反馈。
83 1
|
1月前
|
数据采集 存储 安全
python爬虫之app爬取-mitmproxy 的使用
mitmproxy抓包原理,设置代理,MitmDump运用,mitmproxy使用。
38 0
|
1月前
|
数据采集 存储 数据挖掘
Python爬虫实战:打造一个简单的新闻网站数据爬取工具
本文将介绍如何运用Python编写一个简单而高效的网络爬虫,帮助您在实际项目中快速获取并存储新闻网站的数据。通过学习本文,您将了解到如何利用Python中的第三方库和技术来实现数据爬取,为您的数据分析和应用提供更多可能性。
|
2月前
|
数据采集 前端开发 JavaScript
Python爬虫之Ajax数据爬取基本原理#6
Ajax数据爬取原理【2月更文挑战第19天】
32 1
Python爬虫之Ajax数据爬取基本原理#6
|
3月前
|
数据采集 Linux API
Python爬虫实践指南:利用cpr库爬取技巧
Python爬虫实践指南:利用cpr库爬取技巧
|
3月前
|
Python Go 机器人
Golang每日一练(leetDay0021) 旋转链表、不同路径、不同路径II
Golang每日一练(leetDay0021) 旋转链表、不同路径、不同路径II
32 0
Golang每日一练(leetDay0021) 旋转链表、不同路径、不同路径II

热门文章

最新文章