随笔分类 -  Python爬虫JS逆向二期

关于爬虫的一些基础知识和案例分享,错误纠正
摘要:Python基础之编程语言介绍 1.1、什么是编程语言 编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样)。就像我们中国人之间沟通需要汉语,英国人沟通需要英语一样,人与计算机之间进行沟通需要一门语言作为介质,即编程语言。 编程语言的 阅读全文
posted @ 2023-04-20 16:37 Chimengmeng 阅读(50) 评论(0) 推荐(0)
摘要:分布式爬虫(scrapy_redis) 分布式爬虫是指将一个大型的爬虫任务分解成多个子任务,由多个爬虫进程或者多台机器同时执行的一种爬虫方式。 在分布式爬虫中,每个爬虫进程或者机器都具有独立的爬取能力,可以独立地爬取指定的网页或者网站,然后将爬取到的数据进行汇总和处理。 分布式爬虫相对于单机爬虫的优 阅读全文
posted @ 2023-04-20 09:39 Chimengmeng 阅读(178) 评论(0) 推荐(0)
摘要:Scrapy框架之全站爬虫(CrawlSpider) 在之前 Scrapy 的基本使用当中,spider 如果要重新发送请求的话,就需要自己解析页面,然后发送请求。 而 CrawlSpider 则可以通过设置 url 条件自动发送请求。 LinkExtractors CrawlSpider 是 Sp 阅读全文
posted @ 2023-04-20 09:39 Chimengmeng 阅读(101) 评论(0) 推荐(0)
摘要:Scrapy框架进阶之start_requests重写 start_rquests重写 scrapy中start_url是通过start_requests来进行处理的, 其实现代码如下 def start_requests(self): cls = self.__class__ if method_ 阅读全文
posted @ 2023-04-19 10:15 Chimengmeng 阅读(269) 评论(0) 推荐(0)
摘要:Scrapy框架之Settings配置文件 1. 为什么项目中需要配置文件 在配置文件中存放一些公共变量,在后续的项目中方便修改,如:本地测试数据库和部署服务器的数据库不一致 2. 配置文件中的变量使用方法 变量名一般全部大写 导入即可使用 3. settings.py中的重点字段和含义 - USE 阅读全文
posted @ 2023-04-19 10:15 Chimengmeng 阅读(41) 评论(0) 推荐(0)
摘要:Scrapy框架之下载中间件 class MyDownMiddleware(object): def process_request(self, request, spider): """ 请求需要被下载时,经过所有下载器中间件的process_request调用 :param request: : 阅读全文
posted @ 2023-04-19 10:14 Chimengmeng 阅读(20) 评论(0) 推荐(0)
摘要:Scrapy框架详解 【1】 Spider类 Spiders是定义如何抓取某个站点(或一组站点)的类,包括如何执行爬行(即跟随链接)以及如何从其页面中提取结构化数据(即抓取项目)。 换句话说,Spiders是您为特定站点(或者在某些情况下,一组站点)爬网和解析页面定义自定义行为的地方。 1、 生成初 阅读全文
posted @ 2023-04-07 15:58 Chimengmeng 阅读(29) 评论(0) 推荐(0)
摘要:Scrapy框架简介 (1)基本介绍 Scrapy一个开源和协作的框架, 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。 但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返 阅读全文
posted @ 2023-04-07 15:57 Chimengmeng 阅读(52) 评论(0) 推荐(0)
摘要:web自动化 随着互联网的发展,前端技术也在不断变化,数据的加载方式也不再是单纯的服务端渲染了。 现在你可以看到很多网站的数据可能都是通过接口的形式传输的, 或者即使不是接口那也是一些 JSON 的数据,然后经过 JavaScript 渲染得出来的。 这时,如果你还用 requests 来爬取内容, 阅读全文
posted @ 2023-04-06 11:15 Chimengmeng 阅读(153) 评论(0) 推荐(0)
摘要:PyMongo 在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库。 安装: pip install pymongo 添加文档 import pymongo client = pymo 阅读全文
posted @ 2023-04-02 20:28 Chimengmeng 阅读(34) 评论(0) 推荐(0)
摘要:MongoDB 一般爬虫使用的数据库,是根据项目来定的。 如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里, 如果自选的话,mysql 和mongodb 用的都是比较多的。 但不同的数据库品种有各自的优缺点,不同的场景任何一种数据库都可以用来存储,但是某种可能会更好。 比如如果 阅读全文
posted @ 2023-04-02 20:28 Chimengmeng 阅读(26) 评论(0) 推荐(0)
摘要:Python操作redis (1)连接redis # 方式1 import redis r = redis.Redis(host='127.0.0.1', port=6379) r.set('foo', 'Bar') print(r.get('foo')) # 方式2 import redis po 阅读全文
posted @ 2023-04-02 20:26 Chimengmeng 阅读(18) 评论(0) 推荐(0)
摘要:Redis redis介绍 定义 Redis(Remote Dictionary Server ,远程字典服务) 是一个使用ANSIC编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库,是NoSQL数据库。 redis的出现主要是为了替代早期的Memcache缓存系统的。 map内存型(数 阅读全文
posted @ 2023-04-02 20:26 Chimengmeng 阅读(22) 评论(0) 推荐(0)
摘要:Python操作MySQL import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='root', passwd='...', port=3306,datebase='...') print('连接成功!') # 使用 阅读全文
posted @ 2023-04-02 20:24 Chimengmeng 阅读(26) 评论(0) 推荐(0)
摘要:基本概念 前面的学习中我们提到,mysql是关系型数据库, 所以我们要操作mysql就需要使用SQL(结构化查询语言)。 SQL规范 1. 在数据库管理系统中,SQL语句关键字不区分大小写(但建议用大写) ,参数区分大小写。建议命令大写,数据库名、数据表名、字段名统一小写,如数据库名、数据表名、字段 阅读全文
posted @ 2023-04-02 20:22 Chimengmeng 阅读(33) 评论(0) 推荐(0)
摘要:数据库 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 在同一时段抢票的人数如果太多,那么你的程序不可能运行在一台机器上,应该是多台机器一起分担用户的购票请求。 那么问题就来了,票务信息的数据存在哪里?存在文件里么? 如果存储在 阅读全文
posted @ 2023-04-02 20:21 Chimengmeng 阅读(13) 评论(0) 推荐(0)
摘要:视频文件下载 视频网址:https://www.9tata.cc/play/96891-0-0.html 一、单集视频下载 分析思路 1、分析目标网址:有无反爬、是否需要逆向、存储视频文件的包的位置 2、一般的视频文件。都是由一个个的ts文件组成,我们看到的整集视频,是由一个个小片段组合而成 3、分 阅读全文
posted @ 2023-03-24 18:13 Chimengmeng 阅读(160) 评论(0) 推荐(0)
摘要:Python之面向对象 11.1、OOP编程思想 面向对象编程是在面向过程编程的基础上发展来的,它比面向过程编程具有更强的灵活性和扩展性。面向对象编程是程序员发展的分水岭,很多初学者会因无法理解面向对象而放弃学习编程。 面向对象编程(Object-oriented Programming,简称 OO 阅读全文
posted @ 2023-03-24 12:45 Chimengmeng 阅读(33) 评论(0) 推荐(0)
摘要:并发爬虫之协程实现 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局 阅读全文
posted @ 2023-03-22 20:47 Chimengmeng 阅读(95) 评论(0) 推荐(0)
摘要:各种线程方法对比 1 threading.Thread 方法 1.1 步骤如下: 调用threading 方法的构造创建一个线程池。 定义一个普通函数作为线程任务。 调用 threading 对象的 start() 方法来提交线程任务。 调用 threading 对象的 join() 方法来实现线程 阅读全文
posted @ 2023-03-19 11:57 Chimengmeng 阅读(50) 评论(0) 推荐(0)