经验记录
MengDiLI
python初级码农
展开
-
pandas常用方法
pandas对于处理表格类数据来说是非常方便的模块,同时也是做数据分析绕不开的第三方库。这里将工作中常用到的各种处理方法记录下来原创 2023-07-18 15:45:12 · 752 阅读 · 0 评论 -
取字典的第一个值
【代码】取字典的第一个值。原创 2023-06-20 16:05:33 · 266 阅读 · 0 评论 -
undetected_chromedriver解决网页被检测
opts = ChromeOptions() opts . add_argument(f'--proxy-server=socks5://127.0.0.1:9050') driver = Chrome(options = opts) driver . get('目标网址')原创 2023-06-15 09:57:16 · 9367 阅读 · 3 评论 -
不逆向解决5s盾之cloudscraper
经常写爬虫的同学,肯定知道 Cloud Flare 的五秒盾。当你没有使用正常的浏览器访问网站的时候,它会返回如下这段文字:Please allow up to 5 seconds… 即使你把 Headers 带完整,使用代理 IP,也会被它发现。原创 2023-06-15 09:52:39 · 4541 阅读 · 0 评论 -
某网站指纹反爬处理
指纹技术就是通过不同的设备和客户端在参数上的微妙差异来识别用户。本来按照规范, 这些值都是应该任意选取的,但是,现实世界中,服务端反而对不同值采取了区别对待。指纹技术 可以说应用到了 OSI 网络模型中所有可能的层,基于 HTTP header 顺序的指纹工作在第七层应用层, SSL/TLS 指纹工作在传输层和应用层之间,TCP 指纹在第四层传输层。而在 TCP 之下的 IP 层和物理 层,因为建立的不是端到端的链路,所以只能收集上一跳的指纹,没有任何意义。原创 2023-06-14 18:06:08 · 1902 阅读 · 0 评论 -
某网站cookie反爬记录
最近做城投项目时候遇到一个问题,就是一个代码写好不动,我只操作页面,运行出来的结果却是页面上显示的内容。这就导致了我不能按自己的需求抓取指定模块的内容。原创 2023-06-14 17:52:39 · 541 阅读 · 0 评论 -
如何优雅的写try...except....嵌套
我在工作中因为经常需要正则解析大量结构不一的文本,所有异常捕获用的非常频繁,甚至需要深层嵌套才能完成最终提取,所以写出的异常捕获代码异常难看,大概类似于这种吧。。。。因为深受其害,后来百般寻找解决办法,还真让我找到了可行方案。总体思想就是将所有可能性通过循环的方式捕获异常,测试例子大概是这样:def a(): print(name_a)def b(): # print(name_b) aaa = 123 return aaadef c(): prin原创 2022-04-22 10:53:05 · 378 阅读 · 0 评论 -
python 批量移动文件
import osdef remove_file(): target_dir= r'./docx文件新' if not os.path.exists(target_dir): os.makedirs(target_dir) old_dir = os.getcwd() + '/docx文件旧' for root, dirs, files in os.walk(old_dir): for file in files: #原创 2021-03-05 16:37:20 · 270 阅读 · 0 评论 -
格式化headers,正则替换key:value到‘key’:‘value‘,
选择regex,将(.*?):(.*)替换为'$1':'$2',之后可以ctrl+alt+l,进行代码美化原创 2020-12-16 10:05:35 · 936 阅读 · 0 评论 -
将doc、docx文件转为pdf
from win32com import client as wcimport os# 将doc转pdfdef get_pdf(): # doc文档对象 w = wc.Dispatch('Word.Application') file_dir = 'D:/需要转换的文件夹路径' for root, dirs, files in os.walk(file_dir): # print(root) # 当前目录路径 # print(dirs)原创 2020-08-21 10:06:23 · 902 阅读 · 0 评论 -
css笔记
原创 2020-07-29 10:23:22 · 110 阅读 · 0 评论 -
使用Beautifulsoup解析网页遇到的问题
今天遇到一个网页,按往常的老办法soup = BeautifulSoup(content, 'lxml')打印soup发现少了很多数据,刚开始还以为反爬,后来经过验证不是。、那么就是解析问题,我换成了soup = BeautifulSoup(content, 'xml')打印发现我想要的那块成功出现了,但是对比整个网页发现,其实还是有一些没有显示出来的,不管他,时间紧任务重,得过且过。后来进入详情页,发现又显示不全了。中间试了xpath等各种解析手段,还是显示不出来。最后还是继续使用bs4原创 2020-07-07 11:08:56 · 2090 阅读 · 1 评论 -
时间转换
字符串类型转时间类型date = datetime.datetime.strptime(data1,'%Y-%m-%d')#获取当前时间 now=datetime.datetime.now()获取当日时间now = datetime.date.today() # 获取时间间隔 jg = now - end_date jg_days = jg.days...原创 2020-06-18 15:31:16 · 202 阅读 · 0 评论 -
推荐一个在线格式化显示json网址
因为疫情,在家呆了很久,也失业了,emmmmm。。。。刚找到工作,公司老人给我推荐了一个json格式化显示网址https://json.cn复制想要显示的json文本内容放到位置1,位置2会自动显示json样式,方便数据的查看...原创 2020-04-15 15:37:44 · 1149 阅读 · 0 评论 -
python使用replace做多字符替换
如果需要替换的字符比较少,我们可以直接写出来,但是多的话,就要用for循环了原创 2020-01-03 15:59:29 · 8747 阅读 · 4 评论 -
python两列表对应元素求和
一种方法是循环,但是有简便方法,用numpyimport numpy as nplist1=[1,2,3,4]list2=[1,2,3,4]a_array = np.array(list1)b_array = np.array(list2)c_arry=a_array+b_arrayprint(c_arry)列表中的数字是字符串形式的话import numpy as np...原创 2019-12-26 14:49:49 · 8288 阅读 · 0 评论 -
python打开xml文件并转为Beautiful格式
from xml.dom.minidom import parseimport xml.dom.minidom#打开xml文档dom = xml.dom.minidom.parse('newmy.xml')#转为字符串collection = dom.documentElement.toxml()print(type(collection))#转Beautifulsoup=Beau...原创 2019-12-25 14:09:29 · 160 阅读 · 0 评论 -
图片文字识别各种方法比较
网上有很多种图片文字识别方法,我这选了几种,做下比较代码在这:import tesserocrfrom PIL import Imageimport pytesseractdef a(): #这是一种办法,使用tesserocr image=Image.open('xxx.jpg') result=tesserocr.image_to_text(image) ...原创 2019-11-30 11:18:47 · 1681 阅读 · 0 评论 -
pip install使用镜像
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests,这样就会从清华这边的镜像去安装requests库原创 2019-11-23 13:46:45 · 3932 阅读 · 0 评论 -
使用anaconda新建各种python版本虚拟运行环境(附pycharm设置运行环境)笔记
下载地址:https://www.anaconda.com/download/安装包下载下来之后,点击安装,自己定义选择安装到哪里,之后一路next到这里,就按他默认的这样不动。因为第一个是加环境变量,选择的话后面会有不少麻烦,后面咱们手动添加。第二个意思是默认使用python3.7然后耐心等待,中间电脑可能有提示木马修改啥的,全部允许了最后装好后配置环境变量配置好后打开命令行输入c...原创 2019-12-06 10:27:18 · 6422 阅读 · 4 评论 -
求列表内元素总和
total = 0list1 = [2, 3, 5]for x in range(0, len(list1)): total = total + list1[x]print( total)原创 2019-10-26 11:19:32 · 4236 阅读 · 0 评论 -
批量取文件
file_dir='G:/2017年更新2018年楼盘/' for root, dirs, files in os.walk(file_dir): # print(root) # 当前目录路径 # print(dirs) # 当前路径下所有子目录 # print(files) # 当前路径下所有非目录子文件 for x...原创 2019-12-14 15:35:21 · 151 阅读 · 1 评论 -
fiddler安装
昨天安装fiddler踩了不少坑,根据网上教程一步步安装好后会出现各种问题,特别是证书安装方面,后面找到一个教程,算是解决了问题,记录一下,以供以后参考原文链接https://www.cnblogs.com/liulinghua90/p/9109282.html注意:以下步骤假设是已经安装fiddler的情况下需要做的处理 ,若已安装,建议执行以下步骤,然后进行重新安装;清除C:\Use...原创 2019-08-15 10:33:24 · 243 阅读 · 0 评论 -
python BlockingScheduler定时任务
【代码】python BlockingScheduler定时任务。原创 2019-09-18 11:59:55 · 24309 阅读 · 5 评论 -
python的txt文件存取
#读文件with open("xiaoqu_url.txt", "r+", encoding="utf-8") as f: content=f.read() url_list=content[:-1].split(',')#写文件with open("xiaoqu_url.txt", "a+", encoding="utf-8") as f:...原创 2019-09-29 10:19:58 · 289 阅读 · 0 评论 -
对列表内元素去重
b=[11,1,1,1,222,3,3,3,4,4,5]a=list(set(b))print(a)[1, 3, 4, 5, 11, 222]原创 2019-09-29 10:16:36 · 353 阅读 · 0 评论 -
python处理各种编码格式的txt文件
import os,shutilfrom pymysql import *import timeimport chardetdef get_geshi(path): try: f = open(path, 'rb') r = f.read() # 获取文本的编码方式 f_charInfo = chardet.dete...原创 2019-08-30 18:55:51 · 785 阅读 · 0 评论 -
python 处理.docx文件
.docx实际上是一个zip的压缩文件,其中Word文件的正文内容被保持在word/document.xml中。具体代码如下:from zipfile import ZipFilefrom bs4 import BeautifulSoupimport osfile_dir='E:\数据\word'for root, dirs, files in os.walk(file_dir): ...原创 2019-09-03 16:32:13 · 757 阅读 · 0 评论 -
python计算字符在字符串中出现的次数
python计算所有字符在字符串中各自出现的次数1from collections import Counterstr='1212jisajikodsakdokoakso'counts=Counter(str)print(counts)2message='Thdsaa' count={} for character in message: count.setdefau...原创 2019-09-20 15:26:55 · 6108 阅读 · 0 评论 -
appium安装
1、安装node.js下载地址:http://nodejs.cn/download/ ,根据自己系统选择相应版本,一路"Next"即可安装完成。默认安装路径为"C:/Program Files/nodejs/",安装时需添加系统全局变量。安装完成,然后打开命令提示符窗口,敲入npm -v如果出现以上画面则说明node.js安装成功!2.安装Appium直接下载appium的GUI界面...原创 2019-08-17 10:52:25 · 8281 阅读 · 0 评论 -
selenium切换到新打开的网页
#打印当前所有窗口句柄print(driver.window_handles)#默认关闭第一个窗口,不关的话可能浏览器开很多窗口,电脑卡了,所以每打开一个,就关掉前一个driver.close()#切换窗口n = driver.window_handles # 获取当前页所有窗口句柄print(n)driver.switch_to.window(n[0])time.sleep(3...原创 2019-09-17 14:34:15 · 3426 阅读 · 0 评论 -
redis存取,redis mysql操作
import datetimefrom pymysql import *from bs4 import BeautifulSoupimport requestsimport jsonimport zlibfrom urllib import requestimport sysimport randomfrom selenium import webdriverimport re...原创 2019-08-13 16:19:25 · 199 阅读 · 0 评论 -
xpath的使用实例
xpath的使用实例from lxml import etreeurl='https://www.cnblogs.com/lei0213/p/7506130.html'data=requests.get(url).texth=etree.HTML(data)print(h)#href需要@href,text需要text()html_data = h.xpath('//*[@id="b...原创 2019-09-19 13:37:34 · 1547 阅读 · 3 评论 -
selenium元素等待
1,强制等待time.sleep(3)2,隐式等待隐式等待作用全局driver,所以脚本中设置一次即可。作用是设置超时时间,也就是说当selenium定位某元素时,如果没有定位到,脚本会自动默认休眠一下,然后再去尝试定位,直到定位到继续执行或者超出传入的等待时间抛出异常(我设置的10秒)。用这种等待方式的好处是首先不会因为页面没有加载完成导致的定位不到元素报错,其次是不会让程序傻傻的一...原创 2019-09-17 14:58:26 · 136 阅读 · 0 评论 -
if ...if和if...elif区别
我一直以为写if还是elif都是一样的,今天没事做了下试验,证明凡是存在的都是合理的。。。。。不会存在无谓的东西。通过运行下面的代码我可以看出,if…elif的逻辑是,程序先走if,能走就走,走完就不走elif了,走不通的情况才走elif。比如当x=7的时候,符合if下面的>5,运行print(‘大于5’,a),然后就没有然后了,即使也符合elif下面的<8,也是看不见看不见。。i...原创 2019-09-24 15:35:30 · 30504 阅读 · 2 评论 -
随机生成useragent
from fake_useragent import UserAgentua = UserAgent()useragent=ua.chromeheaders={ 'User-Agent':useragent}原创 2019-09-29 10:30:47 · 1525 阅读 · 0 评论 -
多进程
import timeimport randomfrom multiprocessing import Processdef piao(name): print('%s piao' %name) time.sleep(random.randrange(1,5)) print('%s piao end' %name)def aa(): print('a...原创 2019-10-04 09:51:56 · 144 阅读 · 0 评论