爬虫实战——爬百思不得姐

2023-12-27 22:18
文章标签 实战 爬虫 不得 百思

本文主要是介绍爬虫实战——爬百思不得姐,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

看完了爬虫的入门之后,想实战一下,于是找了一个段子网站——百思不得姐,爬一下段子:

首先进入到 http://www.budejie.com/text/,里面全部是段子,暂时只把段子爬下来,不爬图片,打开页面查看源代码:


duanzi


发现段子都在类似于这样 <a href="(/detail-3242432.html)">段子</a> 的结构中,
于是我们有办法了,把段子在的地方放入正则表达式reg = re.compile(r'<a href="(/detail-.*?)">(.*?)</a>')
点赞的人数也是重复上面的过程:


点赞人数


正则表达式reg = re.compile(r'<i class="icon-up ui-icon-up"></i>&nbsp;&nbsp;<span>(.*?)</span>

代码如下:

 # encoding: utf-8
import urllib2
import redef getduan():url = 'http://www.budejie.com/text/'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'#代理headers = {'User-Agent': user_agent}request = urllib2.Request(url, headers=headers)response = urllib2.urlopen(request)res = response.read()reg = re.compile(r'<a href="(/detail-.*?)">(.*?)</a>')return re.findall(reg, res)def up():url = 'http://www.budejie.com/text/'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'headers = {'User-Agent': user_agent}request = urllib2.Request(url, headers=headers)response = urllib2.urlopen(request)res = response.read()reg = re.compile(r'<i class="icon-up ui-icon-up"></i>&nbsp;&nbsp;<span>(.*?)</span>')return re.findall(reg, res)if __name__ == '__main__':d = zip(getduan(), up())d = dict(d)count = 0for j, i in d.items():print '段子', (count+1),j[1]count = count+1print 'up人数:',i

这里用到了代理,为了防止反爬虫,环境是python2.7,最后得到的效果如图:


爬取结果


非常简单的爬虫没有用任何框架,接下来会用框架解决爬虫问题,请继续关注。

这篇关于爬虫实战——爬百思不得姐的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/544439

相关文章

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员