python爬虫学习之路
文章平均质量分 83
T o r
记忆在长间隔中形成潜意识层的内隐记忆才能进一步提升学习深度,实战正是调整内隐记忆的过程
重复观察记忆无法达到潜意识层内隐记忆的有效学习效果,实战包括反思、演练(高度调用潜意识内隐记忆进行工作),此时出现偏差都能让潜意识层进行纠正,从而达到形成新的或正确的潜意识内隐 记忆的效果。内隐记忆形成也是让工作变得更具效率的最有效方法。
展开
-
26、Appium和Mitmproxy配合
mermaidflowchatop1=>operation: 工具配置op2=>operation: Fiddler抓包op3=>operation: Mitm抓包数据存储op4=>operation: requests请求视频数据op5=>operation: Appium自动化op1(right)->op2(right)->op3(right)->op4(right)->op5<center>抓取流程</cente原创 2021-03-01 15:37:03 · 295 阅读 · 5 评论 -
25、mitmproxy
Mitmproxy是一个免费的开源交互式的HTTPS代理。MITM即中间人攻击代理的作用,转发请求,保障服务端与客户端的通信查看,记录,修改数据,引发服务端或客户端的特定行为作用原理原理图2安装pip install mitmproxypip install -i https://pypi.douban.com/simple mitmproxy如果直接安装的速度太慢了,可以在命令行中添加国内的镜像源加快速度,就是第二条命令。注意:python 版本不低于3.6安装成功原创 2021-03-01 15:34:16 · 465 阅读 · 0 评论 -
24、Appium
常见应用自动化任务:微信机器人爬虫:通过手机自动化,提取信息自动化测试:自动化测试,提高效率特点支持多个平台:iOS (苹果)、安卓 App 的自动化都支持。支持跨平台运行:Appium可以用在OSX,Windows以及Linux桌面系统上运行。支持多种类型的自动化:支持 苹果、安卓 应用 原生界面 的自动化支持 应用 内嵌 WebView 的自动化支持 手机浏览器 中的 web网站自动化支持 flutter 应用的自动化支持多种编程语言:像 Selenium 一样, 可原创 2021-03-01 15:30:54 · 180 阅读 · 0 评论 -
23、关于破解字体的反爬
字体反爬指的就是浏览器页面上的字符和调试窗口或者源码中的内容,显示的不一样,这就是字体反爬。用爬虫直接去取 1300 或 复制页面的数字,得到的结果龤驋麣麣,要理解字体反爬,先要理解字符集编码的原理。反爬实例二进制,字节,字符Bit 0 或 1 二进制位Byte 01010101 或 0x55 八个连续的二进制位,或二个16进制数表示字符 是指计算机中使用的字母、数字、字和符号ASC原创 2021-03-01 15:27:38 · 138 阅读 · 1 评论 -
22、关于破解滑动的验证码
以破解猪八戒网为例*https://account.zbj.com/login**获取图片验证码,包含缺口图,滑块图,完整图三个canvas标签分别对应了缺口图,滑块图和完整图。通过修改页面样式:让滑块隐藏,截取缺口图;隐藏缺口图,显示滑块图,截取滑块图;显示完整图,截取完整图。1.隐藏滑块,截取缺口图设置后效果2.隐藏缺口图,显示滑块图,截取滑块图隐藏缺口图下滑右侧栏可以看到对滑块的设置3.显示完整图,截取完整图。选择第三个canvas代码更改元素样式,获取图片原创 2021-02-28 15:06:31 · 282 阅读 · 0 评论 -
21、关于破解点触的验证码
点触验证码是一种常见的反爬手段解决方案有两种:一种是直接解决,这需要深度学习机器学习等图像处理技术,以大量的数据训练识别模型,最终达到模型足矣识别图片中的文字提示和应该点击的区域之间的对应关系。这需要非常专业的设备,比如TPU运算,和专业的开发和维护人员。因此市面上有专业解决此类问题的OCR解决提供商。也就是第二种间接解决的方案,调用第三方接口。超级鹰的使用https://www.chaojiying.com/超级鹰验证码识别平台注册超级鹰账号密码在个人中心注册一个软件,相当于做开发原创 2021-02-28 15:04:06 · 747 阅读 · 1 评论 -
20、关于破解字符的验证码
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写。是一种用来区分用户是计算机还是人的公共全自动程序作用认证码是一种人机识别手段,最终目的是区分正常用户和机器的操作。可以防止:恶意破解密码、注册、刷票、论坛灌水,防止黑客对用户的密码进行暴力破解。一般是提出一个问题,这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算原创 2021-02-28 15:02:37 · 413 阅读 · 0 评论 -
19、selenium
Selenium 是一个web自动化工具作用自动化测试通过它,我们可以写出自动化程序,模拟浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。获取信息而且还能从web界面获取信息。 比如招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。运行环境Selenium测试直接运行在浏览器中,就好像一个真正的用户在操作一样, 支持大部分主流的浏览器,包括IE(7,8,9,10,11),Firefox,Safari,Chrome,Opera等。我们可以利用它来原创 2021-02-28 15:00:18 · 294 阅读 · 2 评论 -
18、JS渗透(三)
js项目分析: 1、为了查找参数 2、为了查找动态加载的隐藏内容js加密:通过js加密给服务器的是限制机器人,通过js加密给客户端的是防盗保护。前者分析是把参数加密然后用机器人发送达到伪装的目的,后者通过解密客户端发来的js代码,获取资源来达到解密目的。实质是一个加密来伪装自己和一个破解密码的不同原理。js动态加载:有些内容不是加密,但是需要javascript代码通过用户操作,通过二次的交互加载出来的,这种情况如果是在初始页面的基础上交互的话,网页源码是不会变化的,机器人爬取的时候就不会得原创 2021-02-28 14:57:59 · 972 阅读 · 0 评论 -
17、JS渗透(二)
咪咕登录特点:1.查看有些网站的数据,需要登录状态2.登录状态通过cookie保持操作:1.得到cookie需要账号密码以及其他参数,通过post请求与后端交互2.网站后台为防止爬虫,可能会检验HTTP请求提交过来的参数3.爬虫登录可以通过手动保存cookie,每次请求时带上cookie;缺点是容易过期,小任务爬虫可手动保存cookie4.长期任务,最好模拟登录所需的参数和多次请求,得到cookie参数构造流程 这种提交数据得到响应的的请求,往往参数比较麻烦,所以参数的构造是得到完整原创 2021-02-27 12:43:59 · 552 阅读 · 0 评论 -
16、JS渗透(一)
(渗透过程:了解js代码的过程)一般网站的请求不愿意让机器去发送请求的,所以会设置一些难以获取的参数。通过js代码分析就可以得到请求的参数然后就可以用机器发送请求js逆向:了解js代码后,用python进行实现。(通过分析js动态加载,把js加载的代码还原出来利用,逆向的过程主要体现在逆向分析它js动态加载的源码,和黑客的逆向工程理念类似)js动态:有算法的,给一个内容就会做出反馈的。一些功能处理都是需要通过js来处理的。Chrome调试面板常用面板[外链图片转存失败,源站可能有防盗链机制,建原创 2021-02-27 12:38:43 · 1570 阅读 · 0 评论 -
15、js加密解密
一.概念和作用概念加密解密:一个信息干扰的过程,保证固定的人才可以看到你的信息把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)作用网络信息传输安全涉及到很多个方面,其中主要有三个要解决的问题:保密性(Confidentiality):信息在传输时不被泄露完整性(Integrity):信息在传输时不被篡改有效性(Availability):信息的使用者是合法的常用加密方式数据加密方式描述主要解决的问题常用算法对称加密指数据加密原创 2021-02-27 12:34:34 · 606 阅读 · 0 评论 -
14、pyspider框架
一、pyspider框架介绍1.简介pyspider 是个强大的由python实现的爬虫系统。纯python的强大的webui,支持脚本编辑,任务监控,项目管理和结果查看数据后台支持,MySQL,MongoDB,Reids,SQLite,Elasticsearch,PostgreSQL和SQLAlchemy消息队列支持,RabbitMQ,Beanstalk,Redis以及Kombu支持任务优先级,定时,失败重试等调度方案分布式架构,抓取js页面支持Python2和32.安装‘pip原创 2021-02-27 12:32:42 · 473 阅读 · 0 评论 -
13、fiddler抓包工具
一、HTTP代理(用户代理(User Agent)是用来表明浏览用户的身份,HTTP代理是代理客户机的http访问)所谓的http代理,其实就是代理客户机的http访问,主要代理浏览器访问页面(替浏览器去访问服务器)。代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。代理虽然替客户端访问服务器,客服端的经过了代理,信息都会被它拿到原创 2021-02-27 12:29:32 · 362 阅读 · 0 评论 -
12、分布式爬虫(二)
一、分布式项目演示(二)(上次演示的是spider类,这次要用的是crawlspider类)先通过一般的管道,最后才传到redis,所以redis的优先级比一般管道低在mysql用truncate table清理表数据,可以避免数据录入从原来数据尾部接着写入,在查询中写入truncate TABLE 加表 名scrapy_reidis 爬虫文件更改:这里要用crawlspider所以继承rediscrawlspider类,from scrapy_redis.spiders import RedisS原创 2021-02-27 12:28:50 · 135 阅读 · 0 评论 -
11、分布式爬虫(一)
一、分布式概念和作用比如爬100本小说,分配后每个服务器只爬一部分小说分布式:一个业务分拆多个子业务,部署在不同的服务器上;是一种将任务分布在不同地方的工作方式作用:提高安全性(被抓了也只是单个被抓,不会全部中断)和效率(多个服务器爬取速度倍增)除了在爬虫上运用,网站的访问运用到分布式最多,比如在单个服务器得到多个用户的需求后,分配给多个服务器进行完成,减少工作量二、scrapy_redisredis 的安装与使用:1.redis(支持分布式的数据库) 下载地址https://github原创 2021-02-27 12:27:57 · 194 阅读 · 1 评论 -
10、scrapy框架(六)
一、spider类(基础类)下载图片不需要allowed_domains限制,就可以删去用不用管道都可以,管道的open和close不影响二、ImagesPipeline类(媒体管道类,还能下载音频视频等)下载图片图片、音频、视频等都是二进制数据把获取媒体数据的代码封装到媒体管道类中导入from scrapy.pipelines.images import ImagesPipeline然后class Bdimgpipeline(ImagesPipeline):用一个类来继承媒体管道类原创 2021-02-27 12:26:40 · 95 阅读 · 1 评论 -
9、scrapy框架(五)
一、下载中间件(第四和第五步,引擎和下载器中间的组件,经过他的都可以用来修改)scrapy settings --get DOWNLOADER_MIDDLEWARES_BASE可以查看系统自定义的中间件,得到多个下载中间件的类,他们都有自己独特的功能数值越小越靠近引擎,越大越靠近下载器,下载器返回的数据先通过最大再到最小的数值可以理解为request是顺着小到大,response是顺着大到小,在自定义设置中间件后引入使用时设置数值要注意基础中间件的数值是否会有覆盖所引入的中间件的可能。自定义的中间件原创 2021-02-26 10:24:26 · 86 阅读 · 0 评论 -
8、scrapy框架(四)
Request类是scrapy模块中request请求的基类,request请求类中还有FormRequest类,继承了Request类并进行了扩充一、RequestScrapy.http.Request:Scrapy.http.Request类是scrapy框架中request的基类。它的参数如下:url(字符串) - 此请求的URL,发起请求的URLcallback(callable)- 回调函数method(string) - 此请求的HTTP方法。默认为’GET’。meta(dict)原创 2021-02-26 10:23:36 · 142 阅读 · 0 评论 -
7、scrapy框架(三)
一、CrawlSpider类(有rule功能可以不用层层解析)重新创建爬虫文件,不用默认爬虫类模板,用crawlspider类模板创建好爬虫文件后,输入scrapy genspider -l(进入模板列表)然后选择换用其他模板,默认是basic,这里要换成scrapy genspider -t(选择使用的模板) crawl name(随便起的名字) 域名创建好后,文件里会自动导入rule和LinkExtractor对象Rule(定义三种规则:1、如何爬取url(LinkExtrac原创 2021-02-26 10:22:46 · 131 阅读 · 0 评论 -
6、scrapy框架(二)
一、次级页面获取及数据传递拼接:(之前都是抓取一级页面)次级页面和一级页面不在一个页面上,次级页面是在一级页面跳过超链接进入的另一个页面数据不存储在本地,用管道进行存储到达次级页面网页的连接,可以从一级页面的源代码中寻找次级页面的电影详情不能再通过一级页面解析方法进行解析了callback="self.get_detail"重设解析方法每个次级页面详情所在标签位置都不一样,把拥有相同父标签的路径改成//全局搜索,并且是要span的准确属性@property=”v:summary“设立多个解析方法原创 2021-02-26 10:21:56 · 131 阅读 · 0 评论 -
5、scrapy框架使用(一)
Scrapy框架:(与前面所学的相比,scrapy框架应用更加广泛)简介:(纯python开发的,不含其他语言,改动源码用python语言即可)Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试 Scrapy使用了Twisted 异步(未等请求处理完,就会利用好时间处理其他事)网络库来处理网络通讯。使用原因:1.为了更利于我们将精力集中在请求与解析上(一般处理反爬问题消耗不少精力,用scrapy能解决不小这类问题)2.企业原创 2021-02-26 10:21:09 · 232 阅读 · 0 评论 -
4、网页解析工具
网页解析(提取数据)工具:BeautifulSoup是一个库(使用前还要先生成BeautifulSoup对象),XPath是一个语言一、BeautifulSoupfrom bs4 import BeautifulSoup打开html文件,然后可以在终端进行import的导包,以及各种方法操作BeautifulSoup 是一个可以从‘ HTML ’或’ XML ’ 文件中提取数据的Python库,它的使用方式相对于正则来说更加的简单方便使用BeautifulSoup解析一段网页代码,能够得原创 2021-02-26 10:20:13 · 1950 阅读 · 0 评论 -
3、requests库理解
REquesets库:(比其他http库更简单)一、简介:把get等方法写成接口直接调用,有基本完全满足web请求的所有需求,二、发起请求每一个请求方法都有一个对应的API,比如GET请求就可以使用get()方法post()方法,将需要提交的数据传递给data参数即可,POST请求发送form表单数据通过data,发送json数据通过json参数,json和data不可以同时添加,同时添加会造成json中没有数据发送数据的json方法是不会形成一个表单的,data方法只会形成表单不形成json原创 2021-02-26 10:19:18 · 256 阅读 · 0 评论 -
2、urllib库与urllib3库的理解
一、urllib库(内置官方标准库,built-in),python3中整合了1和2代1、urllib.request请求模块(爬虫进行伪装的核心部分)构造网络请求,可以添加Headers,proxy等(1)发起简单的网络请求:urlopen方法:urllib.request.urlopen(url(必须有), data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)url:可以是字符串也可以原创 2021-02-26 10:16:50 · 550 阅读 · 0 评论 -
1、爬虫概念
一、概念自动批量下载网络资源的程序(伪装成客户端与服务端进行数据交互的程序,客户端是与服务端对应的,网上的浏览器就属于伪装客户端)作用:1、数据收集:用于做数据采集的爬虫,叫”聚焦爬虫“,比如某app、网页或软件面向大众收集的数据2、搜索引擎:比聚焦爬虫收集的范围更广,比如百度,通过搜索关键字将大量页面的信息爬取下来,放到自己的服务器上,需要对页面进行存储和定位3、模拟操作:伪装成客户端,广泛用于模拟用户操作,比如测试机器人,灌水机器人等,都是通过同一个ip地址发出的请求进行伪装客户端操作(后台封原创 2021-02-26 10:16:28 · 1217 阅读 · 0 评论