自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

旧人小表弟的博客 - 无业游民学习笔记

只是用来记录乱七八糟的笔记 - 记性不好 随时失忆 - 业余小学生一枚 偶尔写几行

  • 博客(66)
  • 收藏
  • 关注

原创 adb常用命令

之前玩appium的时候经常用的命令,很多都是以前百度的adb命令查看在线设备 adb devices adb devices -l这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示其有三个状态:Devices:这个状态表示设备或者模拟器已经连接到adb服务器上。Offline:这个状态表明设备或者模拟器没有连接adb服务器或者没有响应;或者adb端口被占了。No devices:这个状态表示没有物理设备或者模拟器连接。连接设备

2021-01-23 13:50:09 1138

原创 classmethod和staticmethod;数值,字符串缓存

2021-01-23 01:27:57 241

原创 Python安装教程

天噜啦,更新了这么多篇文章,现在来个Python安装教程?其实是我把软件打包给别人用,需要对方电脑安装Python环境。。。。。。。。。。如果没有依赖包文件 requirements.txt 到第八步就已经完成了无需后面的操作...

2021-01-23 01:17:32 250

原创 Python基础:函数的高级使用与装饰器

函数回顾委托的概念def add(a, b): return a + bdef subtract(a, b): return a - bdef action(x, y, func): return func(x, y)action(5, 3, lambda x, y: x*y)函数嵌套def greeting(): def hello(): return 'hello' return hello()# greeting()

2021-01-09 18:38:45 184

原创 Python基础:系统编程_sys、os模块

sysimport sys查看模块下有哪些功能print(dir(sys)) # 打印sys模块下所有的成员、功能from pprint import pprintprint(pprint(dir(sys))) # 用这个pprint模块打印效果是一行一个 更美观一些平台与版本print(sys.platform)# 获取当前系统环境:win32 64位系统打印的结果也是win32,Python只有32位的print(sys.version) # 当前使

2021-01-09 17:48:29 213 2

原创 Python基础:对象持久化

扁平文件普通文件的创建with open('data.txt', 'w', encoding='utf8') as f: # 使用上下文方式创建一个文件 f.write('小鸟\n') # 写内容 f.write('网络科技') # 写内容用文本文件存储对象scores = [88, 99, 65, 80]def write_scores(): with open('data_list.txt', 'w',

2021-01-09 16:35:46 312 3

原创 Python基础:数值、日期与时间

数值格式化操作与小数处理格式化字符串format()使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1} …>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)'Hello, 小明, 成绩提升了 17.1%'f-string,format()简写方式使用以f开头的字符串,称之为f-string,它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:>&gt

2021-01-09 00:29:35 697 4

原创 Python基础:单元测试

"""单元测试"""import unittest# 需要测试的代码def add(a, b): return a + bdef bdd(a, b): return a * b# 测试类,正常情况下是单独放一个模块文件的class MyTest(unittest.TestCase): # 继承模块unittest下的 unittest.TestCase def test_add(self): # 定义测试函数 test_

2021-01-08 20:39:45 230 3

原创 Python基础:异常处理

异常处理"""try:except:"""# 捕获异常try: # try:尝试执行下面放有可能出错的代码 x = 5 / 0 print(x)except ZeroDivisionError as e: # except 异常类型 as 实例 e: print('程序遇到错误:不能除零', e) # 捕获到特定的异常:ZeroDivisionErrorexcept: # 其他异常错误 excep

2021-01-08 20:04:00 133 4

原创 Python基础:面向对象

面向过程title = 'Python入门'price = 39.02author = 'prter'def search_book0(title): pass'''面向过程,都是些很松散的变量、函数所以要想办法将松散的字段(有关联的)封装到一个类/对象里,将一些行为封装到函数里也是封装'''使用Python内置的对象进行代码封装1、将这些字段放入列表book0 = [title, price, author, search_book0]2、用字典表的方法模拟面向对象

2020-12-30 21:28:04 356 3

原创 Python基础:函数

函数存在的意义print('拿到一本书')print('看书')print('收起')# 模拟一个看书的操作,多次调用某个操作,直接封装在函数里即可def learnling(name, course, start, end): # 带参数函数 print(f'{name}报名了课程:{course}') print(f'从第{start}节课学习到{end}节课') print(f'{name}学习结束')# 调用函数learnling('小明', 'Pyt

2020-12-30 18:19:32 184

原创 Python基础:语句与表达式

赋值语句# 基本赋值x = 5# 序列赋值(x, y) = (5, 10)print(x, y)x, y = 5, 10 # 省略括号 作用一样print(x, y)result = x + 20print(result) # 只要两边数量一样,都会一一对应 对单个变量进行赋值[x, y, z] = (10, 20, 30) # 只要两边数量一样就行print(x, y, z)# 交换变量x, y, z = z, y, xprint(x, y, z)# 序列

2020-12-30 16:13:21 413

原创 Python基础:文件操作

创建文件myfile = open('hello.txt', 'w', encoding='utf8') # 赋值给一个句柄myfile# 创建一个叫hello.txt的文件 并且往里面写内容myfile.write('旧人小表弟\n') # 写内容myfile.write('Hell wold!\n') # 写内容myfile.close() # 把文件关掉 释放内存打开文件f1 = open('hello.txt',

2020-12-30 00:01:34 166

原创 Python_requests库:参数和cookie补充

网友在post一个网站登录页面的时候,总是不成功,找我来试试抓个包,然后用发包工具测试了一下,没有任何加密和其他特殊的协议头、参数什么的,但是始终返回-1,表示不成功,网站看起来很老、很奇葩看下登陆成功会返回什么:用谷歌浏览器抓post请求的时候,响应里是看不到返回数据的,所以用火狐浏览器试了一下,发现即使是手动登陆也经常登不上,需要登录两次,第一次返回-1,然后再点一次登录,会提交第一次的cookie去登录,所以抓包的时候,一定要清除浏览器cookie,因为火狐浏览器是第一次抓这个网站的包,但是谷歌浏

2020-12-29 15:04:40 253 1

原创 真机调试环境配置、刷机

真机调试环境配置真机获取ROOT权限完全ROOT不完全ROOT开启USB调试调试一个APK,必须满足以下两个条件中的任何一个:AndroidManifest.xml中的Application标签包含android:debuggable=“true”/default.prop中的ro.debuggable的值为1方法一:用AK反编译以后在AndroidManifest.xml文件中的Application标签中加入android:debuggable=“true” 然后回编译这个方

2020-12-24 00:54:17 404

原创 Linux基础

下面是N年以前学Linux的笔记截图

2020-12-22 20:48:24 85

原创 ADB指令、Linux命令行、Android分区目录

常用adb指令adb devices:显示当前连接的设备列表,adb进程经常会死掉,使用这个命令会重新连接-s参数:需要操作某一个设备时,如果当前有多个设备,使用-s 设备指定某一个设备adb connect:连接到设备,如:adb connect 127.0.0.1:21503adb shell:进入到设备的控制台,如果有多台设备需要用-s参数来指定如果进入的是shell权限,说明机器是不完全root,然后输入su回车,会进入到root权限进入权限后,之后所有的操作都是使用Linux命令

2020-12-22 15:59:32 1443

原创 Android抓包工具:使用Hook框架和模块、HTTP Debugger Pro解决抓不到包的问题

Android辅助工具Android Helper下载地址:https://pan.baidu.com/s/15rAiQ9CH3JAT-gLjG7JBTQ 提取码:e0inAPK查壳PKiD下载地址:https://pan.baidu.com/s/15rAiQ9CH3JAT-gLjG7JBTQ 提取码:e0in模拟器Android4.4版本:支持Xposed87,安装快Android5.1.1版本:动态调试稳定,修改apk以后无需重签名,也能装上去,支持覆盖安装,安装慢,不支持Xposed87

2020-12-21 20:48:12 5374

原创 常规工具安装与环境配置

Android开发工具工具下载地址:http://www.androiddevtools.cn安装路径里不要带空格或中文JDK与JREJDK包含JRE,安装JDK时会弹出安装JRE的窗口64位和32位都要装环境变量:开发环境安装与配置adt-bundle(eclipse、Android SDK --> adb、ddms、fastboot)ADT Bundle包含了Eclipse、ADT插件和SDK Tools,是已经集成好的IDE,只需安装好Jdk即可开始开发,推荐初学

2020-12-17 19:40:13 748 1

原创 JVM、DVM与ART

JVMJava虚拟机,运行的是.java文件编译后的.class文件DalvikAndroid4.4及以前使用的都是Dalvik虚拟机,我们知道Apk在打包的过程中会先将java等源码通过javac编译成.class文件,但是我们的Dalvik虚拟机只会执行.dex文件,这个时候dx会将.class文件转换成Dalvik虚拟机执行的.dex文件。Dalvik虚拟机在启动的时候会先将.dex文件转换成快速运行的机器码,又因为65535这个问题,导致我们在应用冷启动的时候有一个合包的过程,最后导致的一个

2020-12-15 15:00:38 165

原创 Android体系结构和APK基本结构

Android历史版本等级 版本号 代号API1: Android 1.0API2: Android 1.1 Petit FourAPI3: Android 1.5 CupcakeAPI4: Android 1.6 DonutAPI5: Android 2.0 éclairAPI6: Android 2.0.1 éclairAPI7: Android 2.1 éclairAPI8: Android 2.2 - 2.2.3 FroyoA

2020-12-14 21:38:49 292

原创 Python和JavaScript的for循环遍历

PythonPython的for循环只有一个,一般指的是for in,而其他语言则分为for 和 for in两个for i in [1,'a',2,'b',3]: print(i)dict = {'a':1,'b':'zs','c':'ls'}for i in dict: print(dict[i])Python遍历序列的时候很方便,列表、元祖、字典表、集合、字符串都可以直接使用for循环来遍历可以用for循环遍历的,都叫可迭代对象JavaScript临时变量i需

2020-12-14 19:57:02 516

原创 分布式爬虫 Scrapy-Redis案例:搜房网房天下

创建爬虫爬虫部分代码items.pymiddlewares.pypipelines.pysettings.py部署多台服务器-执行分布式爬虫

2020-12-12 18:18:59 440 2

原创 Python:导出本机已安装所有环境库到另一台机器

2020-12-11 19:17:49 890

原创 分布式爬虫:Scrapy-Redis

Scrapy是一个框架,他本身是不支持分布式的。如果我们想要做分布式的爬虫,就需要借助一个组件叫做Scrapy-Redis,这个组件正是利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。可以充分的利用资源(多个ip、更多带宽、同步爬取)来提高爬虫的爬行效率。分布式爬虫的优点:可以充分利用多台机器的带宽可以充分利用多台机器的ip地址多台机器做,爬取效率更高分布式爬虫必须要解决的问题:分布式爬虫是好几台机器在同时运行,如何保证不同的机器爬取页面的时候不会出.

2020-12-09 23:22:07 595

原创 分布式爬虫:redis数据库介绍

redis是一种支持分布式的nosql数据库,它的数据是保存在内存中的,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且它比memcached支持更多的数据结构(string,list列表[队列和栈],set[集合],sorted set[有序集合],hash(hash表))相关参考文档:http://redisdoc.com/index.htmlredis使用场景登录会话存储:存储在redis中,与memcached相比,数据不会丢失排行版/计数器:比如一些秀场类的项目,.

2020-12-09 22:55:48 352

原创 Scrapy:在Scrapy中使用selenium来爬取简书全站内容,并存储到MySQL数据库中

创建爬虫scrapy startproject jianshucd jianshuscrapy gensipder -c crawl jianshu_spider “jianshu.com”爬虫代码# -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom pa_chong.Scrap

2020-12-08 22:22:05 260

原创 Scrapy:boos直聘爬虫案例

爬虫代码# -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom pa_chong.Scrapy.boos.boos.items import BoosItemclass ZhipingSpider(CrawlSpider): name = 'zhiping' allowe

2020-12-07 23:21:25 1493 2

原创 Scrapy:使用下载器中间件设置随机ua和代理ip

爬虫代码# -*- coding: utf-8 -*-import scrapyimport jsonclass HttpbinSpider(scrapy.Spider): name = 'httpbin' allowed_domains = ['httpbin.org'] start_urls = ['http://httpbin.org/user-agent'] def parse(self, response): user_agent =

2020-12-06 20:55:19 998 1

原创 Scrapy:下载器中间件介绍

Downloader Middlewares(下载器中间件)下载器中间件是引擎和下载器之间通行的中间件,在这个中间件中可以设置代理、更换请求头… 来达到反反爬虫的目的。要写下载器中间件,可以在下载器中实现两个方法:process_request(self, request, spider):这个方法是在请求发送之前执行process_response(self, request, response, spider):这个方法是在数据下载到引擎之前执行process_request(self, re

2020-12-05 18:35:37 370

原创 Scrapy框架:下载文件和图片

修改settings.py代码ROBOTSTXT_OBEY设置为False设置DEFAULT_REQUEST_HEADERS要激活pipelines,应该在settings.py中设置ITEM_PIPELINES‘bmw.pipelines.BmwPipeline’: 300, 是默认的‘scrapy.pipelines.images.ImagesPipeline’: 1 是Scrapy模块内部定义好的图片下载器pipelines‘bmw.pipelines.BMWImagesPipe

2020-12-05 17:34:33 683

原创 Scrapy框架:Request和Response对象,使用Request发送get请求、FormRequest发送post请求

创建爬虫scrapy startproject renrencd renrenscrapy gensipder -c crawl renren_login "renren.com"修改settings.py代码爬虫部分代码 # -*- coding: utf-8 -*-import scrapy'''登录人人网,访问大鹏页面 post、get请求'''class RenrenLoginSpider(scrapy.Spider): name = 'renren_

2020-12-01 15:10:39 2755

原创 Scrapy框架:微信小程序社区CrawlSpider案例

修改settings.py代码爬虫部分代码# -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom pa_chong.Scrapy.wxapp.wxapp.items import WxappItemclass WxappSpiderSpider(CrawlSpider):

2020-11-30 18:21:53 224 1

原创 Scrapy框架:CrawlSpider和Scrapy Shell

CrawlSpider在上一篇文章爬虫案例中,我们是自己在解析完整个页面后获取下一页的url,然后重新发送一个请求。有时候我们的需求是:只要满足某个条件的url,都进行爬取。这时候就可以通过CrawlSpider来完成了。CrawlSpider继承自Spider,只不过是在之前的基础之上增加了新的功能,可以定义爬取的url的规则,以后scrapy碰到满足条件的url都进行爬取,而不用手动的yield Request。创建CrawlSpider爬虫之前创建爬虫的方式是通过scrapy genspide

2020-11-26 15:14:29 206

原创 Scrapy框架:入门介绍

Scrapy框架介绍Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services)或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。发送网络请求、数据解析、数据存储、反反爬虫机制(更换ip代理、设置请求头等)、异步请求等。这些工作如果每次都要自己

2020-11-25 16:49:19 518

原创 Python常见加密方式总结和实现

一、前言我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes。所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错。将字符串和Bytes互相转换可以使用encode()和decode()方法。# 方法中不传参数则是以默认的utf-8编码进行转换a = "中国欢迎您".encode("utf-8")print(a) # b'\xe4\xb8\xad\xe5\x9b\xbd\xe6\xac\xa2\xe8\xbf\x8e

2020-11-18 21:57:16 1113

原创 Tesseract案例1

import pytesseractfrom urllib import requestimport refrom PIL import Imagefrom http.cookiejar import MozillaCookieJarimport randomimport threadingcookiejar = MozillaCookieJar('cookie.txt') # 用MozillaCookieJar类创建cookiejar对象,设置cookie保存路径 文件名handle

2020-11-07 00:01:23 154

原创 ocr初体验,Tesseract,简单的图片验证码识别

图片验证码现在已经不怎么多了,打码平台都已经没什么市场了,现在随便一个现成的通杀库都可以识别所有类型的图片验证码,于是乎稍微大一点的网站都会使用滑块、点选这些行为验证来防刷、防爬了!一般图片验证码、各种滑块都是使用Python来训练的,往大了说这些都属于神经网络的事情了。pytesseract...

2020-11-02 22:58:18 603

原创 Python爬虫:整理selenium经常遇到的一些坑,无法定位元素、网站反爬虫监测、请求头、页面滚动,你要的可能都在这里 - 旧人笔记

selenium这种模拟浏览器的操作,虽然简单,但是代码量大,非常繁琐,且在使用过程中会遇到各种坑,不像请求接口,直接发get、post包就行了!无法定位元素页面元素还没加载出来frame/iframe二次定位 如:弹出框登录不可见元素绕过网站监测添加请求头页面滚动...

2020-10-19 18:03:33 3344 1

原创 selenium爬虫案例

爬拉勾网以前看视频教程的练习例子,现在应该用不了了使用requests 数据请求爬取import requestsfrom lxml import etreeimport timeimport reheaders = { 'Referer': 'https://www.lagou.com/jobs/list_python?city=%E5%85%A8%E5%9B%BD&cl=' 'false&fromSearch=true&la

2020-10-18 16:50:54 817 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除