
Python
深蓝冰河
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python并发编程【(一)理论】:多线程thread、多进程Process、协程Coroutine(async await)
Python对并发编程的支持●多线程: threading, 利用CPU和IO可以同时执行的原理,让CPU不会干巴巴等待IO完成●多进程: multiprocessing, 利用多核CPU的能力,真正的并行执行任务●异步IO: asyncio, 在单线程利用CPU和IO同时执行的原理,实现函数异步执行,●使用Lock对资源加锁,防止冲突访问●便用Queue实现不同线程/进程之间的数据通信,实现生产者-消费者模式●使用线程池Pool/是程池Pool,简化线程/进程的任务提交、等待结束、获取结果●原创 2021-12-19 11:55:03 · 2864 阅读 · 0 评论 -
che168
import requests as rfrom lxml import etreeimport reimport pandas as pdheaders = { 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.8', 'Cache-Control': 'max-age=0', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KH原创 2021-12-14 17:33:16 · 917 阅读 · 0 评论 -
python的三目运算要怎样写
很多语言支持三目运算,但python没有可用另一种方式条件?真:假result= a > 1? "执行表达式1":"执行表达式2"替代:result = 真 if a>b else 假max = a if a>b else b可以更复杂:result=a if a>b else c if c>d else d可理解为:a if a>b else ( c if c>d else d )...原创 2021-12-14 17:31:42 · 748 阅读 · 0 评论 -
etree xpath 解析 含有空标签 之外的内容
可用:from lxml import etreehtml='<div id='test'>hello<span></span>你好<br/>哈哈</div>'#要想得到哈哈:ehtm=etree.HTML(html)haha=ehtm.xpath('//div[@id="test"]//text()')[-1] #哈哈原创 2021-12-14 17:25:21 · 683 阅读 · 0 评论 -
车质网爬虫
import requests,re,json,jsonpath,timefrom bs4 import BeautifulSoupimport pandas as pd#投诉编号 投诉品牌 投诉车系 投诉车型 问题简述 典型问题 投诉时间 投诉状态result=pd.DataFrame(columns=['id','brand','car_modle','type','desc','problem','datatime','status'])def get_info(request_url)原创 2021-11-30 11:51:52 · 665 阅读 · 0 评论 -
json解析库jsonpath的使用
1.jsonpath操作符:操作说明$查询根元素。这将启动所有路径表达式。@当前节点由过滤谓词处理。*通配符,必要时可用任何地方的名称或数字。…深层扫描。 必要时在任何地方可以使用名称。.点,表示子节点[’’ (, ‘’)]括号表示子项[ (, )]数组索引或索引[start:end]数组切片操作[?()]过滤表达式。 表达式必须求值为一个布尔值。Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XP原创 2021-11-29 14:34:17 · 718 阅读 · 0 评论 -
运行绿色程序报错:应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具
一、解决:最简单的:据二步的报错信息 【参考是】的version='8.0.50727.6195’复制,到报错程序根目录下找到文件【Microsoft.VC80.CRT.manifest】把对应的version改成参考的版本号,原来的版本号xxx.762直接替换,即可启动程序方法二:到网上找到正确的VC++版本安装到电脑里(非常难找,不推荐)二、分析错误原因&查看报错详情:计算机——右键——管理——windows日志——应用程序报错如下:“D:\ProgramGreen\Ph原创 2021-06-07 15:34:53 · 4947 阅读 · 0 评论 -
py:requests.post表单、json、上传文件
1. post form表单提交import requests,json# post form请求 "Content-Type":"application/x-www-form-urlencoded"url= 'http://httpbin.org/post'data={'key1': 'value1','key2': 'value2'}res=requests.post(url,data=data)print(res.text)#================结果=========原创 2021-05-26 20:51:05 · 529 阅读 · 0 评论 -
python批量把表格的图片链接变图片
import requests# from openpyxl import Workbookfrom openpyxl import load_workbookfrom openpyxl.drawing.image import Image#当前模块主要功能:把表格的图片链接列下载下来,插入对应列,设置宽高#子函数1:图片下载def download_img(url,file_name): res = requests.get(url) img = open(img_path原创 2021-05-25 14:47:50 · 1130 阅读 · 0 评论 -
为安卓系统(夜神模拟器)添加Mitmproxy证书
说明Android证书分为“用户证书”和“系统证书”两种,在设置->安全->"查看安全证书"列表中,可以看到“系统”和“用户”两个列表。用户通过浏览器下载安装或者通过WLAN高级设置安装的证书均为用户证书。安装为系统证书有什么好处呢?(1)安装用户证书必须要设置开机密码,而且设置后就不能取消,除非先删掉所有的用户证书。如果安装为系统证书就不需要设置开机密码,自动化操作时更方便。(2)Android 7以上版本APP默认不信任用户证书,只信任系统证书,安装为用户证书,对APP的HTT原创 2021-05-23 19:57:58 · 5451 阅读 · 5 评论 -
pandas写入表格 pd.to_excel()写入表格不同工作表、写入不同表格,不同工作表
写入表格不同工作表(工作表同名则覆盖)import pandas as pdwriter=pd.ExcelWriter(ExcelFile,engine='openpyxl',index=True,encoding='utf-8-sig') df_titlerank.to_excel(writer,sheet_name='标题词权重计数') df_wordCount.to_excel(writer,sheet_name='标题词计数') writer.save()写入不同表格,不同工作表(工原创 2021-05-19 22:12:39 · 2772 阅读 · 0 评论 -
python: for in 的一行简写,返回一个新字典、新列表
for in 简写a=[1,2,3,4,5]b=reversed(a) #列表反转[5,4,3,2,1]c={i:0 for i in b} #【for简写】返回一个处理后的新字典print(c)out:{5: 0, 4: 0, 3: 0, 2: 0, 1: 0}返回新列表a=[1,2,3,4,5]c=[i+1 for i in a]print(c)out:[2, 3, 4, 5, 6]...原创 2021-05-19 11:19:24 · 1637 阅读 · 0 评论 -
pandas 打开xlsx 报错:xlrd.biffh.XLRDError: Excel xlsx file; not supported
xlrd.biffh.XLRDError: Excel xlsx file; not supported问题原因:原因是最近xlrd更新到了2.0.1版本,只支持.xls文件。所以pandas.read_excel(‘xxx.xlsx’)会报错。解决一:用openpyxl代替xlrd打开.xlsx文件:df=pandas.read_excel(‘data.xlsx’,engine=‘openpyxl’)解决二:也可安装旧版xlrd,在cmd中运行:pip uninstall xlrdpip i原创 2021-05-18 18:28:26 · 491 阅读 · 0 评论 -
git更换远程仓库地址
问题:若给已存在远程仓库的源码进行推送会报错,此时可更换远程仓库解决GIT 报错:Branch ‘master’ set up to track remote branch ‘master’ from ‘origin方法共两步1、移除旧远程仓库git remote rm origin2、添加新远程仓库git remote add origin '仓库地址'...原创 2021-05-08 13:31:25 · 165 阅读 · 0 评论 -
python:virtualenv生成虚拟环境、pip freeze导出依赖、用国内源加速安装导出的依赖requirements.txt、设置永久国内源
1.生成一个虚拟环境并运行## 1-a.生成一个python3(默认)虚拟环境【和b二选一】virtualenv py3-env # 会在cmd运行目录 生成一个py3-env的文件夹 版本为默认python3## 1-b.生成一个python2版本虚拟环境【和a二选一】【推荐选项】virtualenv -p C:\Python\python27\python.exe py2-envcd py2-env/scripts # 2.进入工作目录,也可分别进入 py2-env scripts原创 2021-05-08 10:51:27 · 1639 阅读 · 0 评论 -
mitmproxy常用response/request 方法参数 API
针对http,常用的APIhttp.HTTPFlow 实例 flowflow.request.headers #获取所有头信息,包含Host、User-Agent、Content-type等字段flow.request.url #完整的请求地址,包含域名及请求参数,但是不包含放在body里面的请求参数flow.request.pretty_url #同flow.request.url目前没看出什么差别flow.request.host #域名flow.request.method #请求方式。原创 2021-05-06 19:24:57 · 5916 阅读 · 0 评论 -
查看谷歌浏览器chrome默认用户数据目录、启动时的命令参数、chrome命令参数大全,及selenium的使用
1)查看用户数据目录1、在地址栏输入 chrome:version2、随后查看谷歌浏览器保存文件的位置:个人资料路径路径一般为:C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default2)chrome命令参数,及selenium的使用目前我封装是这样配置的options=webdriver.ChromeOptions()options.add_argument(r’–user-data-dir=C:\Users\原创 2021-05-06 16:21:33 · 9466 阅读 · 0 评论 -
selenium技巧:谷歌chrome浏览器准备:以调试模式在指定端口打开,指定个人数据存放目录、连接控制已打开的浏览器、标签页新建/切换,操作
1)selenium控制已打开的浏览器谷歌浏览器准备:以调试模式在指定端口打开、指定个人数据存放目录cmd运行如下命令:需建chrome环境变量或直接建快捷方式:右键属性–目标里 接上chrome.exe后命令如下chrome.exe --remote-debugging-port=9222 --user-data-dir="F:\Demo\python\common\seleniumChromeProfile"from selenium import webdriverfrom selen原创 2021-05-06 15:12:36 · 4545 阅读 · 1 评论 -
puppeteer自动化及爬虫:连接现有谷歌浏览器、新建窗口
1)安装puppeteer官方文档:https://zhaoqize.github.io/puppeteer-api-zh_CN/#/知乎教程:https://zhuanlan.zhihu.com/p/66296309# 1.仅安装核心,然后用chrome运行,不下载Chromium 【建议方式】cnpm i puppeteer-core# or "yarn add puppeteer-core"# 2.下载完整版本,含chromium,速度慢npm i puppeteer# or "ya原创 2021-05-02 08:49:40 · 1803 阅读 · 1 评论 -
sublime text 3 python 控制台编译输出中文乱码 解决
1.打开安装目录 SublimeText\Packages找到:【Python.sublime-package】右键——压缩打开——找到其中的【Python.sublime-build】2.双击用sublime打开在其中加入"env": { "PYTHONIOENCODING": "utf8" },整体效果:{ "shell_cmd": "python -u \"$file\"", "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",原创 2021-04-22 15:21:15 · 376 阅读 · 0 评论 -
用ipython调试webdriver selenium找元素 不用多次打开浏览器
运行文件,可把相关变量,函数保存在当前,不必多次打开chrome%run my_script.py文件内容:my_script.pyimport pymongo,time,os,json,randomfrom selenium import webdriverfrom selenium.common.exceptions import TimeoutExceptionfrom selenium.webdriver.common.by import Byfrom selenium.webdr原创 2021-04-17 15:54:54 · 270 阅读 · 0 评论 -
python的cookie相关操作:复制原始cookie转化为json格式、cookie的读取实现免登录、保存从selenium登录得到的cookie
import pymongo,time,os,json,randomfrom selenium import webdriverfrom selenium.common.exceptions import TimeoutExceptionfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import exp原创 2021-04-17 14:28:36 · 2523 阅读 · 2 评论 -
谷歌插件web scraper拼多逐个点击每个sku并爬取多sku爬取各sku对应价格等信息,及导出的写好脚本(打开复制导入即可)
爬取各sku对应价格等信息重点操作1创建一个点击项把sku点开2创建一个sku点击项3从2项点进去创建一个子项各项关系图谷歌插件web scraper拼多逐个点击每个sku并爬取多sku导出脚本(打开复制导入即可)点击import sitemap,把以下json复制进去即可{ "_id": "pdd_detail", "startUrl": ["https://mobile.yangkeduo.com/goods.html?goods_id=175451208823"],原创 2021-04-08 13:53:22 · 946 阅读 · 0 评论 -
用selenium隐藏webdriver信息爬取淘宝:自动写读cookie实现自动登录、判断是否登录、EC显示等待使用、pyquery空标签perser处理
spider.py原创 2021-04-06 22:06:42 · 285 阅读 · 0 评论 -
selenium基础常用+jupyter notebook打开+清除单元格输出快捷键
Selenium打开note:shift+右键 > 打开cmd 输入 jupyter notebook清除jupyter notebook单元格的输出:esc+r+y基本使用from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import原创 2021-04-05 15:59:44 · 1874 阅读 · 0 评论 -
appium的安装+连接夜神模拟器控制app
一、下载夜神模拟器官网:https://www.yeshen.com1.安步骤安装即可2.配置把android sdk的C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools\adb.exe复制到C:\Program Files\Nox\bin中,并改名为nox_adb.exe(原nox_adb.exe随便改个名字即可)二、安装及配置appium官网:appium.io下载地址:github.com/appium/a原创 2021-03-26 21:00:18 · 438 阅读 · 0 评论 -
anaconda指定目录打开jupyter notebook
一、指定目录打开notebook方法一:直接在目标文件夹shift+右键 打开命令提示符输入:jupyter notebook注:此命令需要在安装anaconda时勾选:【not recommend】注册环境变量否则需要手工添加以下环境变量(我的电脑右键>属性>高级系统设置>环境变量):C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Library\mingw-w64\bin;C:\ProgramData原创 2021-01-13 21:56:12 · 4333 阅读 · 1 评论 -
sublime text3 python相关设置:有环境变量或无环境变量添加python3编译系统
一、为sublime3添加python编译系统(1)打开sublime,打开“工具->编译系统->新编译系统”(2)输入:{ "cmd":["python.exe", "-u", "$file"], #编译器名字 "path":"C:/Users/Administrator/AppData/Local/Programs/Python/Python37", #路径 "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "sel原创 2021-01-13 17:16:43 · 1051 阅读 · 0 评论 -
用flask微信公众号开发简单流程:服务器配置、对接微信服务器、接收发送微信消息、获取微信授权拉到客户微信资料
一、基础配置:服务器配置1)登录公众号平台获取开发者ID(AppID)和开发者密码(AppSecret)拉到底【开发】——【基本设置】——按提示开启功能——把appID、AppSecret保存下来2)部署服务器用flask先用自带的wsgi即可,uwsgi+nginx配置可以后再做3)新建文件夹和文件【www/wechat/index.py】# coding:utf-8from fl...原创 2020-05-07 11:33:46 · 3377 阅读 · 1 评论 -
基于centos7系统Linux服务器部署(二):python+Django/flask+uWSGI+Nginx
一、web服务工作流程在搭建开始前,我们先来梳理下web服务工作流程,先看下图:1、用户(PC)向web服务器发起http请求2、web服务器判断用户请求文件是否为静态文件,是则直接读取静态文件并返回给用户,不是则通过WSGI协议将请求丢给web框架(django)代码处理3、看web框架是否启动django中间件,如果启用,则依据中间件对请求进行修改,如果不启用,则进入下一步4、we...原创 2020-04-27 16:27:09 · 3616 阅读 · 0 评论 -
基于centos7系统Linux服务器部署(一):centos7安装python3.7
环境材料准备CentOS Linux release 7.3.1611Python-3.7.3.tgz一、安装过程1、安装python3.7.3的依赖包:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc makeyum inst...原创 2020-04-23 13:40:42 · 302 阅读 · 0 评论 -
python使用虚拟环境virtualenv
一、virtualenv的使用1.安装virtualenvpip install virtualenv2.创建pthon2的虚拟环境创建需要的python版本[系统默认是3.7,则创建2.7版]-p 表示环境名称virtualenv -p C:\Python\python27\python.exe scrapypy2#Installing setuptools, pip, whee...原创 2020-03-21 11:40:40 · 337 阅读 · 0 评论 -
Django(二十)下拉列表-省市联动实例:jquery的ajax处理前端
一、知识点1.jquery的ajax请求写法<script src="/static/js/jquery-1.12.4.min.js"></script><script type="text/javascript"> $(function(){ $.get('/areas',function(data){ //处理请求数据 }) $.po...原创 2020-01-18 17:34:51 · 647 阅读 · 0 评论 -
Django(二十)分页:
一、知识点参考:https://docs.djangoproject.com/zh-hans/3.0/topics/pagination/查询出所有省级地区的信息,显示在页面上。AeroInfo.objects.filter(aParent__isnull = True)1) 查询出所有省级地区的信息。2) 按每页显示10条信息进行分页,默认显示第一页的信息,下面并显示出页码。3) ...原创 2020-01-18 14:41:25 · 352 阅读 · 0 评论 -
Django(十九)文件上传:图片上传(后台上传、自定义上传)、
一、基本设置参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/1)配置project1/settings.py因为图片也属于静态文件,所以保存到static目录下。MEDIA_ROOT=os.path.join(BASE_DIR,"static/media")2)在static目录下创建medi...原创 2020-01-17 18:27:58 · 4779 阅读 · 1 评论 -
Django(十八)后台管理:列表页选项、编辑页选项、自定义后台页面
https://blog.youkuaiyun.com/u010132177/article/details/1038143571)app2/models.pyfrom django.db import models# Create your models here.class BookInfo(models.Model): '''图书模型类''' btitle = models....原创 2020-01-17 15:26:15 · 2158 阅读 · 0 评论 -
Django(十七):静态文件、中间件
一、静态文件参考:https://www.cnblogs.com/jiajiaba/p/10584329.html参考:https://docs.djangoproject.com/zh-hans/3.0/ref/settings/#static-files1.1 使用在 网页使用的css文件,js文件和图片叫做静态文件。1)新建静态文件夹 根目录/static/js、css、image...原创 2020-01-14 12:00:02 · 617 阅读 · 0 评论 -
Django(十六)基于模板的登录案例:登录装饰器、csrf攻击方式及防护、ajax的Post 的csrf开启写法、生成验证码、加验证码登录、反向解析+传参
一、需要的基础知识1.1 csrf攻击首先做一个登录页,让用户输入用户名和密码进行登录,登录成功之后跳转的修改密码页面。在修改密码页面输入新密码,点击确认按钮完成密码修改。登录页需要一个模板文件login.html.修改密码页面也需要一个模板文件change_pwd.html.显示登录页的视图login,验证登录的视图login_check,显示发帖页的视图change_pwd,处理修改...原创 2020-01-13 11:34:25 · 1490 阅读 · 0 评论 -
Python中的*可变参数与**关键字参数
1、定义了一个需要两个参数的函数def print_str(first, second): print first print second if __name__ == "__main__": print_str("hello", "world")如果传一个参数调用,print_str(“hello”),那么一定会抛出异常的:明确告诉你需要准确的两个参数,现...原创 2020-01-12 09:02:56 · 382 阅读 · 0 评论 -
Django(十五)模板详解:模板标签、过滤器、模板注释、模板继承、html转义
一、模板【参考】https://docs.djangoproject.com/zh-hans/3.0/topics/templates/原创 2020-01-11 15:55:36 · 427 阅读 · 0 评论