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

关于爬虫的一些基础知识和案例分享,错误纠正
摘要:多进程实现 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。 multiprocessing包是Python中的多进程管理包。 与threading.Thread类似,它可以利用multiprocessin 阅读全文
posted @ 2023-03-19 09:19 Chimengmeng 阅读(20) 评论(0) 推荐(0)
摘要:多线程实现之线程池 1 引入 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。 在这种情形下,使用线程池可以很好地提升性能, 尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。 线程池在系统启动时即创建大量空闲的线程,程序只要将一个函数提交给线程池,线程池就会启动 阅读全文
posted @ 2023-03-19 09:18 Chimengmeng 阅读(37) 评论(0) 推荐(0)
摘要:多线程实现之互斥锁 问题引入 假如存在一个列表: A线程对其修改,B进程对其访问 假如A,B线程同时去修改和访问则会出现问题 一个数据明明要被A线程删掉的,结果B线程抢先一步就把这个数据访问到了 那么如何解决这个问题呢?可以使用线程同步 1.1 线程同步: 多个线程访问一个对象时,请线程们先排好队, 阅读全文
posted @ 2023-03-19 09:18 Chimengmeng 阅读(64) 评论(0) 推荐(0)
摘要:一、变量作用域 变量的作用域 Python是静态作用域,也就是说Python中,变量的作用域源于它在代码中的位置 在不同的位置,可能有不同的命名空间。命名空间是变量作用域的体现形式 python变量作用域一般有4种: Local(局部变量) Enclosed(嵌套) Global(全局) Built 阅读全文
posted @ 2023-03-19 09:17 Chimengmeng 阅读(89) 评论(0) 推荐(1)
摘要:线程案例:爬取斗图吧表情包图片 方案一:单线程版本 耗时慢 import requests from fake_useragent import UserAgent import random from lxml import etree import os import time # 伪装UA f 阅读全文
posted @ 2023-03-15 13:00 Chimengmeng 阅读(51) 评论(0) 推荐(0)
摘要:并发爬虫三、多进程实现 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。 multiprocessing包是Python中的多进程管理包。 与threading.Thread类似,它可以利用multipro 阅读全文
posted @ 2023-03-15 12:52 Chimengmeng 阅读(18) 评论(0) 推荐(0)
摘要:并发爬虫二、多线程实现 【1】threading模块 Python提供两个模块进行多线程的操作,分别是thread和threading,前者是比较低级的模块,用于更底层的操作,一般应用级别的开发不常用。 import time def foo(): print("foo start...") tim 阅读全文
posted @ 2023-03-15 12:51 Chimengmeng 阅读(43) 评论(0) 推荐(0)
摘要:并发爬虫一、进程、线程以及协程 1. 并发与并行 2. IO密集型任务和计算密集型任务 3. 同步与异步 4. IO模型(IO多路复用) 5. 内核态多线程,用户态多线程 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。 强调多个事件在同一时间间隔发生 【1】进程概 阅读全文
posted @ 2023-03-15 12:50 Chimengmeng 阅读(62) 评论(0) 推荐(0)
摘要:#对爬取17k小说的代码进行优化 import requests import os from time import sleep from lxml import etree import random from fake_useragent import UserAgent # 全局变量:UA伪 阅读全文
posted @ 2023-03-13 16:53 Chimengmeng 阅读(329) 评论(0) 推荐(0)
摘要:引言 Python代码 print('hellow word') 代码执行顺序 我们可以看到Python仅仅用了一行代码即可完成其他编程语言多行的输出Hello,World 其他的编程语言像C/C++/C#/JAVA 等 都会有一个main主函数的框架 所有的代码都是在该框架下运行的,有且只能有一个 阅读全文
posted @ 2023-03-11 16:20 Chimengmeng 阅读(2216) 评论(0) 推荐(0)
摘要:代理IP **代理IP:**反反爬使用代理ip是非常必要的一种反反爬的方式,但是即使使用了代理ip,对方服务器任然会有很多的方式来检测我们是否是一个爬虫,比如:一段时间内,检测IP访问的频率,访问太多频繁会屏蔽;检查Cookie,User-Agent,Referer等header参数,若没有则屏蔽; 阅读全文
posted @ 2023-03-08 14:51 Chimengmeng 阅读(97) 评论(0) 推荐(0)
摘要:OS模块 (1) 创建文件夹 os.mkdir("我的模块") (2) 路径拼接: os.path.join # path = os.path.join("我的模块", "apple.txt") # print(path) # 我的模块/apple.txt # with open(path, "w" 阅读全文
posted @ 2023-03-08 12:38 Chimengmeng 阅读(29) 评论(0) 推荐(0)
摘要:BS4 【1】简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下: ''' Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。 它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简 阅读全文
posted @ 2023-03-05 14:11 Chimengmeng 阅读(60) 评论(0) 推荐(0)
摘要:Cookie 一、什么是cookie? cookie的本质就是一组数据(键值对的形式存在) 是由服务器创建,返回给客户端,最终会保存在客户端浏览器中。 如果客户端保存了cookie,则下次再次访问该服务器,就会携带cookie进行网络访问。 典型的案例:网站的免密登录 二、Cookie的玩法 1、构 阅读全文
posted @ 2023-03-03 17:39 Chimengmeng 阅读(101) 评论(0) 推荐(0)
摘要:请求参数与请求体参数 一、什么是params参数(请求参数) get 方法是可以向服务器发送信息的,除了可以请求需要的页面之外,也可以发送我们指定的内容,这就是通过 params 参数实现的 request库 get方法 params 这个 params 参数是字典结构,前面说到的 headers 阅读全文
posted @ 2023-03-03 17:37 Chimengmeng 阅读(116) 评论(0) 推荐(0)
摘要:Referer 一、referer是什么: 图片防盗链的技术应该还有其他的,目前了解到的是浏览器的referer,其实这是错误的拼写,正确是应该是referrer。不过现在可以看到Chrome的开发者工具里,还是显示的是前者,拼写不重要,重要的是理解它的含义。 简单来讲,referer的作用就是记录 阅读全文
posted @ 2023-03-03 17:36 Chimengmeng 阅读(125) 评论(0) 推荐(0)
摘要:文件操作 引言 到目前为止,我们做的一切操作,都是在内存里进行的,这样会有什么问题吗?如果一旦断电或发生意外关机了,那么你辛勤的工作成果将瞬间消失。是不是感觉事还挺大的呢?现在你是否感觉你的编程技巧还缺了点什么呢?是的,我们还缺少将数据在本地文件系统进行持久化的能力,白话讲就是文件的读写能力。 文件 阅读全文
posted @ 2023-02-24 12:57 Chimengmeng 阅读(34) 评论(0) 推荐(0)
摘要:xpath解析 xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线。 xpath 全称为XML Path Language 一种小型的查询语言 xpath的优点: 可在X 阅读全文
posted @ 2023-02-24 12:57 Chimengmeng 阅读(137) 评论(0) 推荐(0)