python完美突破tls/ja3

这篇具有很好参考价值的文章主要介绍了python完美突破tls/ja3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 声明

以下只是搬运下我公众号的东西。很早就发过了。原帖地址:

python完美突破tls/ja3 (qq.com)

已经发公众号的为什么还发csdn

有的圈内朋友,不经过我的允许,删减摘录我公众号的内容,这里就不提谁了,心里清楚,还能获得一些关注和流量。很无语,所以我还不如自己也发发。【猛男落泪】

前言

时隔一个多月我又发文了,我还是只发好文的geekbyte,前几天有朋友跟我说我断更一个多月了,哈哈,这不就来了吗

不多废话,进入正题。

如果你偶尔看到这篇文章,而对tls还一脸懵的朋友,可以先阅读以下文章了解一下

https://mp.weixin.qq.com/s/Qx7PjnBgrTR30oCurU6CGw

https://mp.weixin.qq.com/s/7VJHCl2ht4pjkgIdcOKc5w

JS逆向之猿人学第十九题突破ja3指纹验证

深度剖析ja3指纹及突破

ja3指纹补充说明

距离我上次发 深度剖析ja3指纹及突破 已时隔半年多(因为之前删过重新发的),我当时抛出一个问题,就是python由于依赖的openssl库没法高度自定义,导致针对tls那5个组件没法改动太大。

TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats

所以目前有些平台如果有tls认证的话,那对python的爬虫就是降维打击。当时的我确实考虑过看自己去编译一个库,然后解除这个针对python的限制。

这个tls,如果我没搞错的话,在国内的圈子,进入大家视线的是青南大佬,然后是猿人学的练习题,接着再是我的深度剖析,惭愧,我提出来的python被降维打击,我自己想搞定,因为各种原因,我没能去研究,而现在已经有大佬搞定了,而且个人觉得十分完美,所以下面我给一个详细的食用流程吧,也算是给它画上一个句号了。

目前我知道的针对tls的方案

1.hook tls 组件 

目前hook方面,比较成熟的方案就是golang的cycletls,这个cycletls是我偶然找到的go库,也算是能解决大部分的平台。但是据我所知,已经有一些风控强的网站可以识别你hook修改过ja3指纹了

2.魔改openssl

用志远大佬的方案,重新编译openssl,在编译过程中,改c源码,使每次发起请求的tls指纹随机

个人觉得,按目前的行情,如果是校验很强的tls话,随机的可能不行

想我还被远哥在群里@夸赞过,嘻嘻~

3.魔改socket

这个方案是@3301大佬魔改了一套socket收发包流程,是真的牛逼。

在几个月前我跟他私聊过,说好了一起研究的,因为种种原因我放他鸽子了,唉

不过他已经基本搞定,目前已开源:

https://github.com/zero3301/pyrequests/

作者自己说了,暂不支持HTTP2和tls1.3和动态tls指纹,他希望有人能跟他一起开发,感兴趣的可以跟他联系。

4.重编译chromium

根据我的研究,发现这个方案在针对tls方面,能改的不是很多,底层还是借助了浏览器,还不如直接rpc或者用selenium之类的

5.curl-impersonate+pycurl

这个方案我自认为是相对来说最完美的方案

也是我之前想过准备要走的研究方向,可惜因为种种原因,没有继续,理论上的思路跟这个很类似,这里就暂不透漏了。

curl-impersonate,就是用一个大佬编译好的跟浏览器完全一致的curl魔改版

https://github.com/lwthiker/curl-impersonate

其中,curl-impersonate作者自己也写过相关的文章,想了解原理的可以看看,我看完之后真的受益匪浅,对tls的理解更深入了,如果你有意向也想自己编译一个,个人十分建议阅读,反复阅读

https://lwthiker.com/

pycurl就是借助curl发起请求的库

https://github.com/pycurl/pycurl # 官方版

https://github.com/ycq0125/pycurl    # 肝总魔改版本

这里我推荐用肝总的版本。

在编译安装pycurl时指定的curl是魔改好的curl-impersonate,这样python就可以发起跟浏览器完全一致的tls,而且支持自定义tls算法套件。

这个方案唯一的缺点就是,编译过程相对复杂,没法开箱即用,在不同的系统平台下就会遇到各种各样的问题

ok,以下开始我的编译血泪史吧,带着大家一起编译一下curl-impersonate+pycurl。

我选用的环境是在win上用vm虚拟机软件里的linux,这样,即使我有一个步骤错了,可以回到正常的还原点上,节省很多时间。以下用到的图片,由于是我在编译时在每个步骤的截图保留的,所以一会儿是kali界面,一会儿是ubuntu界面,这个不影响,实际你跟着我操作能编译成功即可(其实是真的不想再重新走一遍编译了)

编译curl-impersonate

官方教程,里面给了ubuntu、centos、macos的编译过程,当然如果你想快速用上,可以用该作者直接编译好的docker,但是如果你还要编译pycurl的话,那就得自编译了

https://github.com/lwthiker/curl-impersonate/blob/main/INSTALL.md

注意:不建议用kali

我刚开始使用的是kali linux,为了图方便,直接用的肉师傅的r0env,反正我是没成功(不是说肉师傅的r0env有问题,我咋可能这么冒犯呢,我中途踩坑了很多次,估计装了有冲突的依赖所以导致不行)

kali编译curl-impersonate是没问题的,结果到后面编译pycurl就会有问题:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

这个问题我查阅了大量代码,反正就是提示源码的这一行有问题,大概意思是说事先没声明使用

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

各种方法都试了,有的说是openssl和curl版本太老了,但是我的是最新的,基本不是这个问题,所以,没法了,一度让我心态没了,我放弃用kali。

去官网下载的最新的ubuntu22.04lts(18版本也可以),安装在虚拟机里,网络,proxychains啥的基本配置好了。重新来吧

1.安装需要的环境依赖

这个步骤跟官方教程一样,但是多了些其他的步骤:

sudo apt install build-essential pkg-config cmake ninja-build curl autoconf automake libtool

安装完之后,还要再输入以下命令安装:

# 多了以下命令sudo apt upgrade build-essential pkg-config cmake ninja-build curl autoconf automake libtool

注意,检查下你系统里有没有支持HTTP2的库,要不然还是有问题,curl-impersonate可以编译,pycurl也可以编译,但是不支持HTTP2,然后只要设置HTTP2的就会报如下错:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

这些坑我都踩过了,一想起编译失败的时候就心里苦,所以提前跟你说好在编译之前的操作

怎么装HTTP2库,先用apt search http2

然后会搜到一堆,这里就不贴上占篇幅了。

我刚开始是安装了这些:

sudo apt-get install nghttp2 libnghttp2-dev

后面实在是不放心,因为真的不想重来了,都记不清楚我重试了多少次了(哭~)

我索性又把自己感觉可能会用到的库都装了

sudo apt-get install  gogottrpc  libghc-http2-prof  libghc-wai-http2-extra-dev libghc-wai-http2-extra-prof libprotocol-http2-perl librust-curl+http2-dev librust-curl-sys+http2-dev librust-curl-sys+http2-dev ruby-protocol-http2

好了,有了以上的操作,再继续执行后续步骤,这个步骤没啥要注意的,直接能装上

sudo apt install python3-pip libnss3pip install gyp-nextexport PATH="$PATH:~/.local/bin" # Add gyp to PATH# For the Chrome version onlysudo apt install golang-go unzip

2.拉取代码

也没啥要特别注意的

​​​​​​​

git clone https://github.com/lwthiker/curl-impersonate.gitcd curl-impersonate

如果你没装git会报错,这个就不多说了:sudo apt get git

如果提示无法识别github.com的域名,vim /etc/resolv.conf

去里面,把nameserver改为如下,保存退出,其他别改

​​​​​​​

nameserver 8.8.8.8nameserver 114.114.114.114

如果报错:

fatal: unable to access 'https://github.com/lwthiker/curl-impersonate.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.

终端设置下git的代理:

git config --global http.https://github.com.proxy http://192.168.18.231:7890git config --global https.https://github.com.proxy https://192.168.18.231:7890

再次执行,即可拉取成功

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

下面这个步骤必须先后顺序执行:

autoconfmkdir build && cd build../configure

3.开始编译

# Build and install the Firefox versionmake firefox-buildsudo make firefox-install# Build and install the Chrome versionmake chrome-buildsudo make chrome-install# You may need to update the linker's cache to find libcurl-impersonatesudo ldconfig  # 这个步骤必须要,不然用不了

注意,使用make命令的时候,会去下载需要的文件,如果报错:

curl: (7) Failed to connect to github.com port 443 after 6 ms: Connection refused

说明你网络不行,可以加上proxychains

proxychains make firefox-build

配置proxychains,先用apt 安装,然后在win电脑开启你的科学软件,

配置,vim /etc/proxychains.conf ,把dns注释掉,到文件最底部,设置你win电脑的ip,科学软件暴露的端口即可

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

这里就不多介绍了,具体自己查proxychains怎么配置吧

接着再次执行build命令,如果报错:

CMake Error at CMakeLists.txt:486 (message):  Unknown processor:[proxychains] DLL init: proxychains-ng 4.14                                                                                                                 [proxychains] DLL init: proxychains-ng 4.14                                                                                                                                   x86_64   
--   No package 'libunwind-generic' found

执行以下解决:

​​​​​​​

sudo apt-get update -ysudo apt-get install -y libunwind-dev

再次执行build,没报错则构建完毕,接着再执行安装命令:

sudo make firefox-install

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

接着编译chrome,操作同上

​​​​​​​

make chrome-build  # 如果太慢加上proxychainssudo make chrome-install

如果在build的时候报错:

FAILED: crypto_test_data.cc /root/Desktop/curl-impersonate/build/boringssl/build/crypto_test_data.cc cd /root/Desktop/curl-impersonate/build/boringssl && /usr/bin/go run util/embed_test_data.go -file-list /root/Desktop/curl-impersonate/build/boringssl/build/embed_test_data_args.txt > /root/Desktop/curl-impersonate/build/boringssl/build/crypto_test_data.cc[proxychains] DLL init: proxychains-ng 4.14[proxychains] DLL init: proxychains-ng 4.14go: golang.org/x/crypto@v0.0.0-20210513164829-c07d793c2f9a: Get "https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20210513164829-c07d793c2f9a.mod": dial tcp 142.251.42.241:443: i/o timeout

是因为借用了go的库,使用命令:

go env -w GOPROXY=https://goproxy.cn

继续编译、安装

完成之后再继续执行下面的命令,注意下面最后一个命令的rm, 如果你只是要编译curl-impersonate,那可以删除,如果你还要编译pycurl,千万别执行删除

​​​​​​​

sudo ldconfig # Optionally remove all the build filescd ../ && rm -Rf build   # 注意了

4.编译完成测试

整个过程安装完后,输入curl_    按tab键,有下面的说明编译完成

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

装完了测试:

​​​​​​​

curl-impersonate-ff https://ja3er.com/jsoncurl-impersonate-chrome https://ja3er.com/json

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

curl-impersonate编译完了

如果你执行的时候报错如下:

/usr/local/bin/curl_ff98: line 10: /usr/local/bin/curl-impersonate-ff: No such file or directory

重来吧
 

编译pycurl

1.环境准备

首先确认你刚才编译的curl-impersonate,是否符合编译pycurl的要求

curl-impersonate-chrome -V

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

如果有对应的ssl库和nghttp2,那就可以。这两个缺一个都不行,否则重新编译curl-impersonate吧

2.拉取代码

建议不要用官方的那个pycurl,用spike肝总魔改过的

git clone https://github.com/ycq0125/pycurl

那么肝总魔改了哪些呢?我问过他本人,跟官方的比,他就改了这些,个人建议可以好好读一下他的代码:

https://github.com/pycurl/pycurl/commit/d0dbf9569f1440bdfe452000ff3073336061e24f

如果无法正常拉取,按照上面拉取curl-impersonate的方法同样操作即可

3.改源码

这个步骤就是为了指定刚才编译的curl-impersonate的

​​​​​​​

cd pycurl/srcvi pycurl.h

其他不用动,改下面这里就行,把这个路径改为你实际的路径,也就是刚才编译好的curl-impersonate的build,改之前:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

改之后:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

保存退出

4.开始编译

python3 setup.py install --curl-config={实际的curl路径}/curl-impersonate-chrome-config --openssl-dir={实际的curl路径}/curl-impersonate/build/boringssl/build

比如我的:

python3 setup.py install --curl-config=/home/async/桌面/curl-impersonate-chrome-config --openssl-dir=/home/async/桌面/curl-impersonate/build/boringssl/build

如果报这个错,权限问题

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

加上sudo再次执行,以下就是编译完了

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

5.测试执行

有个地址可以暂时替代ja3官网作为参考(最近发现ja3官网经常崩)

https://tls.peet.ws/api/all

先用curl请求:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

现在用python请求下,也就是pycurl文件里的那个test.py文件

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

执行结果里,如果看不到这个nghttp2,就不支持HTTP2,你又得整个过程重来了

可以看看test.py代码,其实跟之前的python改tls算法区别不大,只是现在用的是编译过的curlAdapter。

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

光能跑没有用对吧,要看tls真的被改了没有,对比下:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

一模一样,牛逼了

6.实际案例测试

还是那个不可说的地址,先用curl-impersonate看看,能访问哈:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

用python请求看看:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

起飞!!!!

7.自定义tls算法

你可以对照着已有的tls算法,自定义了

主要就是改这里:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

https://hpbn.co/transport-layer-security-tls/#tls-session-resumptionhttp://pycurl.io/docs/latest/quickstart.htmlhttps://curl.se/libcurl/c/CURLOPT_HTTP_VERSION.html

反正想怎么改怎么改,你只要别给一个tls不认识的算法就行,起飞吧

后期有空我把我这个编译好的环境,打成docker镜像发出来,你们就不用再走我走过的路了,当然,有时间才行,嘻嘻

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

编译其他浏览器

上面的步骤是编译指定curl-chrome的,你可以重新拉下pycurl,然后重新编译,指定为firefox,edage,safari的路径即可,流程也是一样的,这里就不细说了

踩坑总结

以下是我安装过程中遇到过的坑,仅供各位朋友参考:

1.fatal: unable to access 'https://github.com/lwthiker/curl-impersonate.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.解决办法:git config --global http.https://github.com.proxy http://192.168.18.231:7890git config --global https.https://github.com.proxy https://192.168.18.231:7890

2.curl: (7) Failed to connect to github.com port 443 after 6 ms: Connection refused解决办法:proxychains make firefox-build   编译的时候虽然会去下载各种库,如果中途报curl的错就不要用proxychains 
3.curl: (35) error:0A000126:SSL routines::unexpected eof while reading解决办法:https://blog.csdn.net/u011700186/article/details/109452684
4.install /root/Desktop/curl-impersonate/build/../firefox/curl_ff* /usr/local/binbash: line 1: cd: curl-7.81.0: No such file or directory
curl_chrome101 https://www.baidu.com/usr/local/bin/curl-impersonate-chrome: error while loading shared libraries: libcurl-impersonate-chrome.so.4: cannot open shared object file: No such file or directory
解决办法:ldconfig
5.CMake Error at CMakeLists.txt:486 (message):  Unknown processor:[proxychains] DLL init: proxychains-ng 4.14                                                                                                                 [proxychains] DLL init: proxychains-ng 4.14                                                                                                                                   x86_64   
--   No package 'libunwind-generic' found
解决办法:sudo apt-get update -ysudo apt-get install -y libunwind-dev
6.FAILED: crypto_test_data.cc /root/Desktop/curl-impersonate/build/boringssl/build/crypto_test_data.cc cd /root/Desktop/curl-impersonate/build/boringssl && /usr/bin/go run util/embed_test_data.go -file-list /root/Desktop/curl-impersonate/build/boringssl/build/embed_test_data_args.txt > /root/Desktop/curl-impersonate/build/boringssl/build/crypto_test_data.cc[proxychains] DLL init: proxychains-ng 4.14[proxychains] DLL init: proxychains-ng 4.14go: golang.org/x/crypto@v0.0.0-20210513164829-c07d793c2f9a: Get "https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20210513164829-c07d793c2f9a.mod": dial tcp 142.251.42.241:443: i/o timeout
解决办法:go env -w GOPROXY=https://goproxy.cn
7./usr/local/bin/curl_ff98: line 10: /usr/local/bin/curl-impersonate-ff: No such file or directory
这是出错了,重来吧
8.src/easyopt.c: In function ‘do_curl_setopt_string_impl’:src/easyopt.c:215:10: error: ‘CURLOPT_SSL_CERT_COMPRESSION’ undeclared (first use in this function); did you mean ‘CURLOPT_SSH_COMPRESSION’?  215 |     case CURLOPT_SSL_CERT_COMPRESSION:      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~      |          CURLOPT_SSH_COMPRESSION
更新openssl,重新安装export OPENSSL=/usr/local/openssl/bin
不行就重来

9.src/pycurl.h:5:10: fatal error: Python.h: No such file or directory 
换ubuntu ,kali不行

10.Traceback (most recent call last):  File "/home/async/桌面/pycurl/test2.py", line 19, in <module>    curl.setopt(curl.HTTP_VERSION, curl.CURL_HTTP_VERSION_2_0)pycurl.error: (1, '')
原因是不支持HTTP2,https://github.com/pycurl/pycurl/issues/477
解决办法:需要安装nghttp2 , 这个在编译curl前就要安装的sudo apt-get install libnghttp2-devsudo apt-get install nghttp2
sudo apt-get install  gogottrpc  libghc-http2-prof  libghc-wai-http2-extra-dev libghc-wai-http2-extra-prof libprotocol-http2-perl librust-curl+http2-dev librust-curl-sys+http2-dev librust-curl-sys+http2-dev ruby-protocol-http2

这是某大佬遇到的报错:

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

这个是系统问题,换系统镜像吧

目前我知道的可用的镜像:

​​​​​​​

 1. No LSB modules are available. Distributor ID:  Debian Description:  Debian GNU/Linux 10 (buster) Release:  10 Codename:  buster  2.ubuntu18.04  3.ubuntu22.04

结语

1.在编译的时候别慌,遇到问题别乱,一点点排查

如果遇到了我总结的里面没有的坑,多点耐心,多查资料,找原因,解决它

我就为了编译好,设置了这么多还原点,所以你知道我经历了多少吗,从崩溃中重新放平心态重来(期间非常感谢spike肝总帮我排查问题)

python完美突破tls/ja3,反爬虫与爬虫,tls/ja3,python,安全,爬虫,反爬

2.想进群交流的,加我微信,ID:geekbyte,加了我还没进群的,私聊我。

由于现在群里大佬众多,为了维护良好环境,所以会有一个简单的1分钟入群测试,为了过滤打广告和无关人员的。

3.要提升技术的,可以找我报课哟,肉丝,珍惜,猿人学都有优惠价

最后再说一句,python 好起来了!!!!文章来源地址https://www.toymoban.com/news/detail-717746.html

到了这里,关于python完美突破tls/ja3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中,为了应对反爬虫、匿名访问或绕过某些地域限制等需求,IP代理池成为了一种常用的解决方案。IP代理池是一个包含多个可用代理IP地址的集合,可以通过该代理池随机选择可用IP地址来进行网络请求。 IP代理池是一组可用的代理IP地址,可以用来隐藏用户的

    2024年01月21日
    浏览(57)
  • 逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取

    随着网络技术的发展,网站为了保护自己的数据和资源,纷纷采用了各种反爬虫机制。然而,逆向爬虫技术的出现,使得我们可以突破这些限制,实现对目标网站的深入分析和抓取。本文将介绍逆向爬虫进阶实战的一些技巧和代码片段,帮助读者更好地理解和掌握这一技术。

    2024年02月04日
    浏览(49)
  • 爬虫突破验证码技术 - 2Captcha

    验证码(CAPTCHA),全称为\\\"Completely Automated Public Turing test to tell Computers and Humans Apart\\\",是一种区分用户是计算机还是人的公共全自动程序。最初,验证码主要是一些混杂字母和数字的图片,但随着技术的发展,出现了更多种类的验证码,例如reCAPTCHA、GeeTest拼图验证码、hCaptc

    2024年02月16日
    浏览(32)
  • 【爬虫】 突破Cloudflare 5秒盾的艺术:使用Cloudscraper

    无心生大用,有物不通神                      🎵 闪现吃血王昭君《道德经》 在当今的互联网世界中,保护网站免受恶意访问变得尤为重要。Cloudflare是一种流行的解决方案,提供了多种安全功能,包括一个被广泛称为\\\"5秒盾\\\"(5 Second Challenge)的机制。这个机制要求访

    2024年04月27日
    浏览(35)
  • 【爬虫GUI】YouTube评论采集软件,突破反爬,可无限爬取!

    目录 一、背景介绍 1.1 软件说明 1.2 效果演示 二、科普知识 2.1 关于视频id 2.2 关于评论时间 三、爬虫代码 3.1 界面模块 3.2 爬虫模块 3.3 日志模块 四、获取源码及软件 你好,我是@马哥python说 ,一名10年程序猿。 最近我用python开发了一个GUI桌面软件,作用是爬取YouTube指定视频

    2024年02月11日
    浏览(40)
  • 【Selenium】提高测试&爬虫效率:Selenium与多线程的完美结合

    使用 Selenium 创建多个浏览器,这在自动化操作中非常常见。 而在Python中,使用 Selenium + threading 或 Selenium + ThreadPoolExecutor 都是很好的实现方法。 应用场景: 创建多个浏览器用于测试或者数据采集; 使用 Selenium 控制本地安装的 chrome浏览器 去做一些操作 … 文章提供了 Selen

    2024年02月10日
    浏览(42)
  • socks5 保障网络安全与爬虫需求的完美融合

    Socks5代理:跨足网络安全和爬虫领域的全能选手 Socks5代理作为一种通用的网络协议,为多种应用场景提供了强大的代理能力。它不仅支持TCP和UDP的数据传输,还具备更高级的安全特性,如用户身份验证和加密通信。在网络安全中,Socks5代理充当了重要角色,实现了数据的隐私

    2024年02月12日
    浏览(42)
  • C#/.Net 爬虫request.GetResponse()报错:基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系/根据验证过程,远程证书无效

    首先,先放置一张报错的图片: 原因: 网站的证书应该是失效了,并且我发起的请求是基于Https的,所以被系统认定为不安全的连接。并且通过微软官方文档的解释如下: 解决方案: 1.需要使用 ServicePointManager.SecurityProtoco 属性,这个属性的解释如下,详细可以看官方文档:

    2024年02月16日
    浏览(52)
  • 爬虫爬取数据遇到302,301重定向如何获取重定向后的地址(完美解决)

    只需要将请求头修改成如下,可以根据需要进行更改 然后就可以获取目标重定向后的地址 完整java语言get请求获取重定向地址方法

    2024年01月22日
    浏览(42)
  • python tcp socket中实现SSL/TLS认证

    官话说SSL是安全套接层(secure sockets layer),TLS是SSL的继任者,叫传输层安全(transport layer security)。 说白点,就是在明文的上层和TCP层之间加上一层加密,这样就保证上层信息传输的安全。如HTTP协议是明文传输,加上SSL层之后,就有了雅称 HTTPS 。它存在的唯一目的就是 保证上层

    2024年01月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包