- 博客(35)
- 资源 (2)
- 收藏
- 关注
转载 Python处理Unicode字符时出现中文乱码的情况
个人遇见这个问题是在访问一个html页面后,返回给我的是Unicode格式并带中文的标签内容,这时候我就需要将返回过来的内容转换成正常的html标签格式,再从里面获取我需要的标签。当对字符串进行编码后,要对其解码变回中文,这是坑就来了,默认先转的中文识别的是gbk格式这才导致我们得到了乱码而不是我们想要的值。遇见\u开头的编码,如\u0032\u0030\u0031\u0039\u002D\u0031\u0031即为Unicode字符。现在打印:// éšè—备案信æ¯å±•示。
2024-06-25 16:20:19
256
原创 图片和PDF 加水印去水印
原理就是把pdf转成一张张图片, 因为水印一般都是浅色且透明,所以根据水印色差对图片整体色差进行调整, 从而去除水印。水印 RGB颜色 越高越透明, 所以需要注意别写太死, 留点空间, rgb 是 230 写成 210。原理就是通过模板找到相同形状图案位置,然后根据旁边像素点进行补充。网上查了很多资料, 汇总了几个不错的代码, 顺便做个笔记。找了好多去水印代码,只有这个效果不错,太复杂, 而且后面清洗水印不好清除。2.2就不展示了, 基本没变化。
2024-03-12 11:44:29
776
原创 requests处理 multipart/form-data 请求以及 boundary值问题
关于 Content-type: multipart/form-data可以看一下这篇文章, 分析特别详细HTTP协议之multipart/form-data请求分析put和post区别不大, 只是上传资源的不同方式requests页面常用操作(post、put、get、head、patch、delete方法)关于 put 和 multipart/form-data 就这么多了, 还有一些其他代码也可以参考一下。
2023-09-22 11:36:27
1491
原创 Selenium和Requests搭配使用
之前有提过, 用selenium控制本地浏览器, 提高拟人化,但是效率比较低,今天说一种selenium和requests搭配使用的方法。允许使用工具来检测、检查、调试和分析 Chromium、Chrome 和其他基于 Blink 的浏览器。先用selenium登录网站, 然后获取cookie, requests携带cookie访问。通过执行 CDP 命令,可以在网页加载前运行一段代码,进而改变浏览器的指纹特征。我只是摘抄了一部分, 大佬讲的更详细, 推荐各位去看看。获取到的Cookie。
2023-09-20 16:53:19
2315
原创 Selenium隐藏浏览器特征
此代码将使用Chrome浏览器,并在启动浏览器时使用选项隐藏Selenium特征、设置用户名和密码方式的代理IP和排除或关闭一些Selenium相关开关。然后,使用execute_cdp_cmd命令来执行Google Chrome DevTools协议中的命令,将navigator.webdriver标志的值修改为false或undefined。
2023-09-19 14:27:05
2787
1
原创 pip清华源
python环境在安装源文件时使用默认安装很慢,使用国内清华源速度比较快,地址如下:# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevenhttps://pypi.tuna.tsinghua.edu.cn/simple
2022-05-10 11:26:49
495
转载 汽车之家口碑页面字体解密
注意: 汽车之家不同页面的字体反爬也不一样, 看清楚能不能适用这里有大佬教程,非常详细:转载:https://blog.youkuaiyun.com/blbq105/article/details/85274676# -*- coding: utf-8 -*-import reimport requestsfrom html import unescapefrom fontTools.ttLib import TTFontfrom bs4 import BeautifulSoupclass Ca
2022-02-17 18:03:54
587
原创 爬虫-笔记
1. requests hookrequests中的hook机制, 让我们用来请求得到响应之后去做一些自定义的操作比如打印某些信息、修改响应内容等。具体用法见下面的例子:import requests# 钩子函数1def print_url(r, *args, **kwargs): print("raw_url "+r.url)# 钩子函数2def change_url(r, *args, **kwargs): r.url = 'http://change.url' p
2022-01-14 11:12:16
1323
原创 python调用js样例
1. 正常jsfunction (acc, code) { return acc + code; };2. js嵌套2.1function foo() { var bar = function (acc, code) { return acc + code; }; return bar;}function doencodeacc(acc, code) { return foo()(acc, code);}2.2fu
2022-01-13 17:51:30
276
原创 python调用js
1. 正常调用import execjsprint(execjs.eval("'red yellow blue'.split(' ')"))ctx = execjs.compile(""" function add(x, y) { return x + y; } """)print(ctx.call("add", 1, 2))2. 当js需要调用其他模块或者需要使用windows对象2.1 js修改在js前面加上const jsdom
2022-01-13 17:33:30
1016
转载 phantomjs动态转换ip
phantomjs动态转换ipfrom selenium import webdriverfrom selenium.webdriver.common.proxy import Proxyfrom selenium.webdriver.common.proxy import ProxyTypefrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesfrom ip import get_ipip2
2022-01-07 14:29:45
202
转载 pyppeteer和selenium远程操控浏览器
1. 配置环境Chrome浏览器是支持远程调试模式的。这个模式打开的情况下,Puppeteer或者Selenium可以通过websocket连上去,进而控制它。首先我们来启动Chrome的远程调试端口。你需要找到Chrome的安装位置,在Chrome的地址栏输入chrome://version就能找到Chrome的安装路径,如下图所示:有了这个以后,我们需要执行命令启动支持远程调试功能的Chrome。如果你的电脑是Mac,那么命令是:"/Applications/Google Chrome.app
2021-12-17 10:18:44
4147
6
原创 python转js加密(sha1,base64)
1. js var e = (new Date).toGMTString(), t = "AKIDdlutrcn7F4j62Fskwqbiqrki3q3j40r1vjjw", n = 'hmac id="' + t + '", algorithm="hmac-sha1", headers="x-date", signature="', i = de.HmacSHA1("x-date: " + e, "DqRkSBUCyBklYlwA0pCK7TVdNaSgFp4yAk2G6bcI")
2021-12-02 13:34:45
321
原创 seleniumwire简单使用
seleniumwire简单使用import timefrom seleniumwire import webdriverfrom io import BytesIOimport gzipoptions = webdriver.ChromeOptions()# 防止出现报错:'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte options.add_argument('lang=zh_CN.UTF-8')
2021-12-01 17:52:32
4759
1
原创 excel和csv读写
1. xlsx读取excelxlrd 必须为2.01或之前版本, 其他版本只能支持xlsimport xlrdimport xlwtdef read_excel(): # 打开文件 workBook = xlrd.open_workbook('data/HanXueLi_201801.xlsx'); # 1.获取sheet的名字 # 1.1 获取所有sheet的名字(list类型) allSheetNames = workBook.sheet_names(
2021-12-01 13:56:27
755
转载 多线程数量限制
# coding: utf-8import threadingimport timedef fun(semaphore, num): # 获得信号量,信号量减一 semaphore.acquire() print "Thread %d is running." % num time.sleep(3) # 释放信号量,信号量加一 semaphore.release() # 再次释放信号量,信号量加一,这是超过限定的信号量数目,这时会报错Valu
2021-12-01 11:29:07
623
原创 requests.session登录样例+图形验证
requests.session登录案例+图形验证import jsonimport randomimport re, requests, timefrom lxml import etreefrom faker import Factoryfrom PIL import Imageimport pytesseractfrom hashlib import md5class Wkaskci(object): def __init__(self): self.se
2021-11-23 15:04:42
647
原创 pyppeteer 使用案例
pyppeteer 使用案例import timefrom asyncio import sleep, get_event_loopimport requestsfrom pyppeteer import launchfrom random import randomfrom re import compile, Sfrom faker import Factoryclass TaoBaoSpider: def __init__(self): self.width
2021-11-19 13:50:19
267
原创 requests_html render 设置参数
requests_html render 设置参数1. 不使用renderfrom requests_html import HTMLSessionsession = HTMLSession()#验证代理的使用proxie = { "http":"http://{}:密码@主机:端口".format(用户名)}url = “http://httpbin.org/ip”# 参数和用法跟requests差不多response = session.get(url,proxies=pr
2021-11-18 10:06:35
945
原创 状态码412,521,cookie包含__jsl_clearance参数
状态码412,521,cookie包含__jsl_clearance=参数最近做爬虫碰见状态码为412和521的网站,分享一下经验样例网站: http://kjj.hefei.gov.cn/public/column/2971?sub=&catId=6718761&nav=3&action=list&type=4&pageIndex=11.headers参数用postman检测了一下,发现只需要UA,Host,Cookie参数 - datetime.strptime(start_date, format_pattern))print(difference
2021-07-30 10:28:29
162
原创 Element转HTML和HTML清洗标签
Element转HTML和HTML清洗标签Element转htmlfrom html.parser import HTMLParserfrom lxml import etree, htmlimport requestsresponse = requests.get('https://www.baidu.com')html_element = etree(response) html_text = html.tostring(html_element [0],encoding='utf-8'
2021-07-29 10:35:44
851
原创 Pyppeteer和Flask问题,服务器部署Requests_html问题,多线程调用pyppeteer或requests_html问题
Pyppeteer和Flask问题,服务器部署Requests_html问题,多线程调用pyppeteer或requests_html问题flask的debug模式下调用pyppeteer的冲突多线程调用pyppeteer或requests_html问题centos 8部署pyppeteer和requests_html的问题1. flask 运行 Pyppeteer 报错 “signal only works in main thread”puppeteer在初始化launch时,必须增加以下的参
2021-06-04 15:36:58
811
原创 Python连接ActiveMQ的操作(当前最新版)
Python连接ActiveMQ的操作最近工作需要用到多台主机数据传输,考虑过用socket,数据库,队列,最后决定还是用队列,但是发现网上关于ActiveMQ的代码要么是很早以前的了,要么是解释不够清楚,最后找了很多资料把他们合在一起1.配置JDK环境,安装ActiveMQActiveMQ 由于是基于Java开发的,所以必须先配置JDK环境,这里我分享一下我的,直接下载就行了下载链接:https://pan.baidu.com/s/1tOS9ucdcYwkzzzlTNt9M3Q提取码:z07
2021-03-31 20:05:39
2444
3
原创 selenium 遇见 display:none元素解决方法
selenium 遇见 display:none元素解决方法有次在爬深圳房地产信息网信息,但是在爬备案号的时候卡到了,备案名爬不下来,只有用鼠标放在信息上面才会出现后来检查了一下发现display:none,这是一个css设置,可以让模块不显示经过一翻查询发现可以用selenium执行js代码来修改css# 一页20个数据for x in range(20): # 根据类来定位元素,必须加序号不然报错 js = "document.getElementsByClassName('
2020-05-21 16:25:51
2431
原创 openlaw爬虫超级详细讲解
openlaw爬虫openlaw网站有严格加密,代码可以运行,但是如果想获取太多数据建议根据官网要求来1.openlaw内容页超链接加密打开openlaw网站搜索刑事,打开检查,看见超链接是加密过的猜测一下,觉得里面的两个参数应该就是加密后的id和索引,索引加密猜测应该是常见的url加密,用python的parse.unquote()解密发现刚好是刑事,那接下来就只剩id了 from urllib import parse a = "%E5%88%91%E4%BA%8B"
2020-05-20 11:57:18
10298
原创 Xpath使用(全家桶)
Xpath使用(全家桶)先下载lxml,requests,命令是:pip install lxmlpip install requests导入模块:from lxml import etreeimport requests如果发现etree下面有红线,不用管他,只是python解释器没找到etree,但是照样可以使用,然后开始运行,运行不报错,说明安装成功这里就不单个讲解xpa...
2020-05-07 15:30:30
302
整站下载工具V6.0.rar
2020-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人