kitUIN / PicImageSearch

整合图片识别 API,用于以图搜源 / Aggregator for Reverse Image Search API
https://pic-image-search.kituin.fun/
MIT License
428 stars 46 forks source link

Ascii2D demo运行报错 #37

Closed Sunosay closed 2 years ago

Sunosay commented 2 years ago

直接用的demo,运行的时候报错 https://ascii2d.net/search/uri Traceback (most recent call last): File ".\main.py", line 45, in <module> loop.run_until_complete(test()) File "C:\Users\56393\AppData\Local\Programs\Python\Python37\lib\asyncio\base_events.py", line 584, in run_until_complete return future.result() File ".\main.py", line 18, in test show_result(resp) File ".\main.py", line 31, in show_result print(resp.raw[1].origin) IndexError: list index out of range

https://ascii2d.net/search/uri地址也是报404

另外还有一个问题是 bypass = False # 是否绕过DNS污染 这个我试图配置为bypass = True,却提示我TypeError: 'type' object is not subscriptable.不清楚是哪里出了问题

NekoAria commented 2 years ago

会遇到数组越界,说明 resp.raw 是空的,搜索结果没正常获取到,应该是你网络问题。

url 404 我就不知道怎么复现了,除非你发个 url 让我试试。

最后那个 bypass 我也不知道,除非你能提供详细的日志。

Sunosay commented 2 years ago

会遇到数组越界,说明 resp.raw 是空的,搜索结果没正常获取到,应该是你网络问题。

url 404 我就不知道怎么复现了,除非你发个 url 让我试试。

最后那个 bypass 我也不知道,除非你能提供详细的日志。

用的是文档里的Ascii2d的demo 无任何修改,除了把log换成print

import asyncio

from PicImageSearch import Ascii2D, Network
from PicImageSearch.model import Ascii2DResponse

proxies = None
url = "https://raw.githubusercontent.com/kitUIN/PicImageSearch/main/demo/images/test01.jpg"
file = "images/test01.jpg"
bovw = True  # 是否使用特征检索
bypass = False  # 是否绕过DNS污染

async def test() -> None:
    async with Network(proxies=proxies, bypass=bypass) as client:
        ascii2d = Ascii2D(client=client, bovw=bovw)
        resp = await ascii2d.search(url=url)
        #resp = await ascii2d.search(file=file)
        show_result(resp)

def show_result(resp: Ascii2DResponse) -> None:
    # print(resp.origin)  # 原始数据
    print(resp.url)  # 搜索结果链接
    print(resp.raw[1].origin)
    print(resp.raw[1].thumbnail)
    print(resp.raw[1].title)
    print(resp.raw[1].author)
    print(resp.raw[1].author_url)
    print(resp.raw[1].url)
    print(resp.raw[1].hash)
    print(resp.raw[1].detail)
    print(resp.raw[1].mark)
    print("-" * 50)

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(test())

bypass 的报错如下

PS D:\project\Python\searchImage> py .\main.py
Traceback (most recent call last):
  File ".\main.py", line 43, in <module>
    loop.run_until_complete(test())
  File "C:\Users\56393\AppData\Local\Programs\Python\Python37\lib\asyncio\base_events.py", line 584, in run_until_complete
    return future.result()
  File ".\main.py", line 18, in test
    async with Network(proxies=proxies, bypass=bypass) as client:
  File "C:\Users\56393\AppData\Local\Programs\Python\Python37\lib\site-packages\PicImageSearch\network.py", line 32, in __init__
    from .bypass import ByPassResolver
  File "C:\Users\56393\AppData\Local\Programs\Python\Python37\lib\site-packages\PicImageSearch\bypass.py", line 16, in <module>
    class ByPassResolver(AbstractResolver):
  File "C:\Users\56393\AppData\Local\Programs\Python\Python37\lib\site-packages\PicImageSearch\bypass.py", line 56, in ByPassResolver
    async def read_result(self, tasks: Set[asyncio.Task[Any]]) -> Any:
TypeError: 'type' object is not subscriptable
NekoAria commented 2 years ago

那就是网络问题了,除非你配置了 proxies ,比如 http://127.0.0.1:1081

Sunosay commented 2 years ago

那就是网络问题了,除非你配置了 proxies ,比如 http://127.0.0.1:1081

试过挂梯子 但是也不行..用的是clash , proxies = "http://127.0.0.1:7890"

NekoAria commented 2 years ago

那就是网络问题了,除非你配置了 proxies ,比如 http://127.0.0.1:1081

试过挂梯子 但是也不行..用的是clash , proxies = "http://127.0.0.1:7890"

那你挂的梯子能访问 ascii2d 吗?

Sunosay commented 2 years ago

那就是网络问题了,除非你配置了 proxies ,比如 http://127.0.0.1:1081

试过挂梯子 但是也不行..用的是clash , proxies = "http://127.0.0.1:7890"

那你挂的梯子能访问 ascii2d 吗?

可以,也试过直接使用,是有结果的

NekoAria commented 2 years ago

那你把 logger.info(resp.origin) 这行的注释去掉,再跑一次,把打印的结果发一下。

把 bypass 改回 False 。 bypass 你那个报错我也无法复现。

Sunosay commented 2 years ago

那你把 logger.info(resp.origin) 这行的注释去掉,再跑一次,把打印的结果发一下。

把 bypass 改回 False 。 bypass 你那个报错我也无法复现。

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title>Just a moment...</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta name="robots" content="noindex,nofollow" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <link href="/cdn-cgi/styles/challenges.css" rel="stylesheet" />

</head>
<body class="no-js">
    <div class="main-wrapper" role="main">
    <div class="main-content">
        <h1 class="zone-name-title h1">
            <img class="heading-favicon" src="/favicon.ico"
                 onerror="this.onerror=null;this.parentNode.removeChild(this)" />
            ascii2d.net
        </h1>
        <h2 class="h2" id="challenge-running">
            Checking if the site connection is secure
        </h2>
        <noscript>
            <div id="challenge-error-title">
                <div class="h2">
                    <span class="icon-wrapper">
                        <div class="heading-icon warning-icon"></div>
                    </span>
                    <span id="challenge-error-text">
                        Enable JavaScript and cookies to continue
                    </span>
                </div>
            </div>
        </noscript>
        <div id="trk_jschal_js" style="display:none;background-image:url('/cdn-cgi/images/trace/managed/nojs/transparent.gif?ray=7514697edd078087')"></div>
        <div id="challenge-body-text" class="core-msg spacer">
            ascii2d.net needs to review the security of your connection before proceeding.
        </div>
        <form id="challenge-form" action="/search/uri?__cf_chl_f_tk=ruNEUZU_2sRCyjDhk8OUAuRZwvDNKsKsWUPj792wCJA-1664283519-0-gaNycGzNBlE" method="POST" enctype="application/x-www-form-urlencoded">
            <input type="hidden" name="md" value="5sfMu7U0H41FWrtBG4WMvCJhEBxIgtDPSASfeE36Qcw-1664283519-0-Ad1ljSGVoQYn4suAiezlu7E5JRVRmDAwSSbASaNxj0ZE9jDKU1OBxiyw95Sh0-Bxz-4657mYs3P5gaT3k0pLB_OfVUH_A1g5cHtwYXzlEz-YexafOztcCwFrPD1laOoWOzQFA6mslUchh9tf1eQTi51KRuxPf44os9RM_m6L9eW_WGx3s-DcIb1KbYcLREsR403luKPCRyAJUkqG2SNmK7enfDpxD8td4e_WXV-1jtKXNzBwvnN-YKJwIn8ddR2SdwWvwgRkUp-1rjQ6-41Oyia9ATg-RkoQG2QiqZ72VhZ4-ocCD3zv2VzuYSUpJm6DiEtQaw_co8lB3n_WR6CaUBSCsZHHblz7O5nPMDBteJZx8zNA_zeSU7T4mh_HDfL-r5llmbcMnVenJA3hyyvtMvA3fSR5eyi3L7Wi0t3uLJUAg2GbYUiSzENZtxJCOLhN81doVbvBufZwq_j3YDpQZXbPonDBK8u7rR96EewDxpK9CYJcvvQqNkxa9uxHZNu551y--82tiGErD1i7AfeKij64kUjnCNDqZ8UrV1lqi_kFoEa0kk01QVr46euhAnG8-1Hfe1NqvAWv-8qMCbuqb6-cdPDnMu3Sd9CIyIMjOdx--tpsM3INLHAl6--5xf3Kc1Q9_Wf7tTjUNuZdchiJRJl4OxW8iY3uQLDzjMPKkAIzl-6ILMbsFljGvBnd5RrPR92gYB7UfvBW8axmFGjiLBQ" />
            <input type="hidden" name="r" value="SEMp2DQ2r0pcHXpam82etAjEAgtv_2E2gTk_PJUDElY-1664283519-0-AR661DlODfmRcthn5rZgtzTT8gFtw21lSEOq/ms2WySc+AoKsLyYDMh8hS9luiRod1npkMzKAUE6eqiPkoXvTe2WqpCT/Z2qD7c+FIlWotqzqCpWo07oHxmiofAxYgz20S0QOTkL1fhECrvCZt+dR1w09NCj5P0qEQYCS42knr9M/t6/1l7ZGpdQRoXx+VyFMoMgtNsY7ryP1sWlzH28rOjn1ifDLjJH3BxmRJvHRzG/SwWf32NhYPixcgRIS91fANTX7/pxKxQg5Srd4Q0ntcEcxTRDf+6Dqh1vcf/aycQaSS5rOKDJzB79WjQc2L85mUJ9AVNAw5gNAnBfgpwvwLvNottFs1y1qsNAy1iXwRjcCy9+4yxNbDK40/Gjj73SLjxj4frEkRxBh6YduDKmCpshsRVkE0K9W02amljUGxEiW1rzcea+SXtnN46GipLRqRtHNMetCE54M8flEmjcBj/TTs13FbrwydM1dOCr5OnYF+6GZdsOzB3vXcZPtSq9o3LEMl8NtPpyGw8aM/bmvCPK+4mWyJnhspxsvUFSgeK9QZqQPnuJFqKLQnpQDpKRpUwgpYxk/Z65z5NMhMdfoINmNJNttsiskPP8/TUfdzy/s+FDqw3DOu9wQuwxa5Wb9lRBfBbIDg2ofbjHyQfjRr2VP5mrmjQ2C4Zt8FFcvGw+cJPcQYXiJFPDhOV61u9NvadIeWMKoSU/E3tayxCg/WcGXapv3o+xvM5YlybHz9JJCRl11ACstjii4+UQo9lzHmsdcwndgSq2WhYtOHOF0bSb6pu0SDr2RRJB3ganAH/NmXoiTNU5M77zFeJjUnWgPu3xwbYyFNhAZdb+eS0IQV6q4HFjGo8ghtRxnVc1BWXN0OFhDNnQM+h9lGAbyBX3TF/kAAggrQHgP2dfDq49O7E0w8KEoq9O/r9cuA937ttGwLv2ZksmJdhVJs7Asv2a8EIam+I/ObTo76G5aDl7wJ7ckMFWjijH6P3zoEiWlO1bxF0Daol6qCFS6wrgcSF7fwKjYd+BRM0qqMKMeZO+X8Zkni0x4R8tr1v5uN6E8S+RTGfmGXNhZ0/ZItsAg2zjeCa8Jw+xXopj2+OA1ZY3hr8bCEoDnAtuGjT4dr8dshETD7BFjYVLdpoPt6MBt6oz0MLd7yFmM9wy+AJJhGJYyTejSEOtbbD0Pntujc6tX2oIV1KZSvOLFdn6CjPGNDGANMP/IwHCtC7wZOHYMlwlIB33kpQ0ysNSuJe8jZ+ed9JD43R4nWpLYx1X5h6X8QVnJbf23/9buFbw50cZ6lrE+dCQTkTjJwC0MYKQpYxKFApp7KOj3X2XBRMlTO2qTK4ZztDvLaJYoOLdFu4w06Nv1jijwzJwduofBIEHOn8MgbQNBZa3c0BO9s2V6L5OahZJeCpYQ2OHMzjHDMiDCr/VgyFBDtOwNeJyDT+UbRIPdxe7eQb0ZUJuOE3B9ZxOdX/PJEzD1jhfHLEx+WBjjRNeheWL7vzeeyzi5OVOvHCsW8MSvqxGnJDIeDylHeaB44lE3PwHDiZNRE/oRsVMFbL57qM="/>
        </form>
    </div>
</div>
<script>
    (function(){
        window._cf_chl_opt={
            cvId: '2',
            cType: 'managed',
            cNounce: '46982',
            cRay: '7514697edd078087',
            cHash: 'da932709c464c9e',
            cUPMDTk: "\/search\/uri?__cf_chl_tk=ruNEUZU_2sRCyjDhk8OUAuRZwvDNKsKsWUPj792wCJA-1664283519-0-gaNycGzNBlE",
            cFPWv: 'g',
            cTTimeMs: '1000',
            cTplV: 4,
            cTplB: 'cf',
            cRq: {
                ru: 'aHR0cHM6Ly9hc2NpaTJkLm5ldC9zZWFyY2gvdXJp',
                ra: 'TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzk5LjAuNDg0NC44MiBTYWZhcmkvNTM3LjM2',
                rm: 'UE9TVA==',
                d: 'OYcHM8AffquS9DvUDINyNr31oLp86tMmTSyImI6fdU1G1BnPFVgvDYYMWJ8vtBK6KilcpeAJtYnIA8jSmJTqMrvLJ4Wr1sCdLAna3BiTDEK/1HUeB+VYvN8eNqIGg71t+yb/+2cM7EizPowznhtKshAFV9fs1TE+XcxwfuNRmV51CG2kMGfDj080EW6kTaYwq8jVvtFSZmnGcpUBtxinoNdk0RE9n5l4FzwgDmvJ1Krn71n79pG7z2B83kPW1DkINmoJHrwkeglfOeGo2/bln7JLIefnJ34OrN+EcwGWlrUFYxqf4RqjtLgNLHaY2w7f8riz32WHdsOSFqTnKwwyJk/g7K9gc5+m9pzabT318pKol3nrnpR+nB6Ppkk5YrBykv3GadgLNQn7Ime9RrkNsA1EtpASQfhOeXUP7CFLf+Bru56e0/2vUEk0SWKxK9cqGSU6+OKwHKtJ2Yb2WIr7plXyNeM7hRSkG3g4R6CZYCe7Ha6U48a8OrmUMCowSO54LCK+4SWspMEyvJGc6UjpwdX2NR+Udt48sCBXh1V/Is7mQ/x2pvh6+2zRu8QylljWu5pTnGDCrZoalxcufKt7dth/mnHM9GQKYxi2O+z5IONAeOVRevux00ytgRp2O/q8723XXz3RdS44umSKn4BqFKS+glgqHuLWEOcCBivKwKO4ccHKFWnMLOF74ORA0QCG',
                t: 'MTY2NDI4MzUxOS44MTUwMDA=',
                m: 'NjBbvs1HUHIHNJu42A/m+I44a48iA8WQsX98r+YTfJo=',
                i1: 'Oq5H4W0e3D2Qfpn6///cdQ==',
                i2: '9zzaitjUl+tNu7WNPy3vLQ==',
                zh: 'lBxCieQpkhIHubgKnc9ER+ae9k4MjDZMrA0aIX8vY9I=',
                uh: 'FG/rQB5A3oMsViSOvzHy/Yz4Yg41uhiEOKdRek6QBDY=',
                hh: 'UvL/fnJa0zOA1MTuEDgiLTU6TTQ4uCIB+JWwFzj8+nY=',
            }
        };
        var trkjs = document.createElement('img');
        trkjs.setAttribute('src', '/cdn-cgi/images/trace/managed/js/transparent.gif?ray=7514697edd078087');
        trkjs.setAttribute('style', 'display: none');
        document.body.appendChild(trkjs);
        var cpo = document.createElement('script');
        cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/managed/v1?ray=7514697edd078087';
        window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;
        window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, -window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;
        if (window.history && window.history.replaceState) {
            var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;
            history.replaceState(null, null, "\/search\/uri?__cf_chl_rt_tk=ruNEUZU_2sRCyjDhk8OUAuRZwvDNKsKsWUPj792wCJA-1664283519-0-gaNycGzNBlE" + window._cf_chl_opt.cOgUHash);
            cpo.onload = function() {
                history.replaceState(null, null, ogU);
            };
        }
        document.getElementsByTagName('head')[0].appendChild(cpo);
    }());
</script>

    <div class="footer" role="contentinfo">
        <div class="footer-inner">
            <div class="clearfix diagnostic-wrapper">
                <div class="ray-id">Ray ID: <code>7514697edd078087</code></div>
            </div>
            <div class="text-center">Performance &amp; security by <a rel="noopener noreferrer" href="https://www.cloudflare.com?utm_source=challenge&utm_campaign=m" target="_blank">Cloudflare</a></div>
        </div>
    </div>
</body>
</html>
NekoAria commented 2 years ago

那就是遇到 Cloudflare 5秒盾了。 我还以为这个问题已经被解决了。

Sunosay commented 2 years ago

那就是遇到 Cloudflare 5秒盾了。 我还以为这个问题已经被解决了。

那请问要如何处理(:з」∠)

NekoAria commented 2 years ago

那就是遇到 Cloudflare 5秒盾了。 我还以为这个问题已经被解决了。

那请问要如何处理(:з」∠)

你先试试这个:

async with Network(proxies=proxies, headers={"User-Agent": "PostmanRuntime/7.29.2"}) as client:
Sunosay commented 2 years ago

那就是遇到 Cloudflare 5秒盾了。 我还以为这个问题已经被解决了。

那请问要如何处理(:з」∠)

你先试试这个:

async with Network(proxies=proxies, headers={"User-Agent": "PostmanRuntime/7.29.2"}) as client:

不行(:з」∠)

NekoAria commented 2 years ago

你试试最新的代码,跑 demo 。

Sunosay commented 2 years ago

你试试最新的代码,跑 demo 。

还是不行

[zyw@VM-16-4-centos python]$ python3 demo_ascii2d.py 
2022-10-02 20:24:58.384 | INFO     | __main__:show_result:38 - <!DOCTYPE html>
<html lang="en-US">
<head>
    <title>Just a moment...</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta name="robots" content="noindex,nofollow" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <link href="/cdn-cgi/styles/challenges.css" rel="stylesheet" />

</head>
<body class="no-js">
    <div class="main-wrapper" role="main">
    <div class="main-content">
        <h1 class="zone-name-title h1">
            <img class="heading-favicon" src="/favicon.ico"
                 onerror="this.onerror=null;this.parentNode.removeChild(this)" />
            ascii2d.net
        </h1>
        <h2 class="h2" id="challenge-running">
            Checking if the site connection is secure
        </h2>
        <noscript>
            <div id="challenge-error-title">
                <div class="h2">
                    <span class="icon-wrapper">
                        <div class="heading-icon warning-icon"></div>
                    </span>
                    <span id="challenge-error-text">
                        Enable JavaScript and cookies to continue
                    </span>
                </div>
            </div>
        </noscript>
        <div id="trk_jschal_js" style="display:none;background-image:url('/cdn-cgi/images/trace/managed/nojs/transparent.gif?ray=753d6b047864ce44')"></div>
        <div id="challenge-body-text" class="core-msg spacer">
            ascii2d.net needs to review the security of your connection before proceeding.
        </div>
        <form id="challenge-form" action="/search/file?__cf_chl_f_tk=s2Ax0w5gbs2inR3gIEhGedEKmPXd8A48p0ZhddEuzpg-1664713498-0-gaNycGzNBaU" method="POST" enctype="application/x-www-form-urlencoded">
            <input type="hidden" name="md" value="GTezWVWWHTWoH8YF4rC_1kWfX.enxlNc0sdtQle.Qfw-1664713498-0-ARvbBWZil2HD0eF4jNogwponhMWNscjDOzEO5yXQ0FaBU63eT4uBGfliRwcq7PM7vcyf8e-B0e6H3yrG2BQZb3PeFmXoZcqsjMDBn-3CfQlcY2f0MOutcBvAAGoKtAT7AVTID_ttdNEvyiwYKLghMmUyIYESRw3w-fE_pVwW9Xscd9lNcLnxORUbX0wQ_vTXkpsbkCtYXrghtXtBOxQ6UmWeHtqPWod_saylRiLHz4Uzf-kOeZu1NQ3qmjSWJhXVZUBYI5CRFIqGyo79S9g2OEoJn0IkavpgEwXNsY_Lc6CyFOyDfSpXMjM3TT-K4OFJEGFnf6w0AjolvNIrmFnJJ9TUMl5j1GnjzBLK_raU4wRvI5G7GNDRPEetBv_sK-9X-gPw1vaqwUmc657UNbeEF6oCEXD2Rzk3c74woWm8pLAN4sMVtFs44vKLhig7LjvXivPcX7OgiTzZhv4YD2FrKhkhovAq25izjgM_7vIhf3EhbnRG3oMRm0XVh7WsYvyIAEP6GzO7UTygjfjAixCGhhd0dU1mcgt3DMVucdAGunooUwhjXMGcCQmSq-Tgrr1qncxZ4va25Dm_kwew2EMOpFy-ZeIFT9WW4nCAxLu-j-oduqRMuNygGZXogv--nTqmNeA9ARLdDkjfIr8QCk4vaSJ4frvmQIun2ne96dXHhab3Xgp_M6AKjf2ox7B_DR-wHCeeIZ7vKozqOcySB0aupZo" />
            <input type="hidden" name="r" value="GfD82Urlg_ZCIHZcbo5m4FXqB5gpqxKka2JZGn0yxl8-1664713498-0-AQMkS5/I/46mnuQEdrjKL3fUyEm+HDupm3psOamCoW3D+R6zbkEHgNovGQCb9vfcy5V7zg9twh/mk9gjjKo5idK5XckMYlX+JHpuETYyOiag1DF2oXV+piqj9SxvMLU5msBizWnKv5p2Ci3Kd7lcpvyKi+QwbrSY51AlQbQdL23Dbr49QyklK7xOmdCk5VOMDRICpRYGfurSX1jxhcxJe6ScMB/dKypmKIhjBGoBN4rj13cq770x/zdhDgtEMMZ+q7lKyWbMMqPDqW1+GOxPWvB6HwItjwI8MIBROg2hl9q5eRhH91lIQTMH6pKVB9Xb7kG7qUQgKUopu/QRee34iumuT0KCXM7hRIi8Q/c0rX0WSHdOEzLUAHh/mPuJFnuGi9da4p/xH3rWJ1UCMiiyT9GT7t/JgNATLJsWK9h8tyUgUD+bqmAhFUdXfm/8YtPIrL9c4zKTBvG1afoEWSJRrMwxa3MvydrcdFokGsETzF+i69Q3rxJSSwl6OMBd28DVP4gfIHXcGH8cgNsE08tMPZV/ob1I1fM4GRwzKJhbCzy8NYRr5X3+crimmQ9Ie+UWW/jsKMGKl4uz8aTniRuyrx4wBqHUeTpdrK/FEU+Vd//mb1PmOg5nqSBHwEQoiha7yFKbj7TVGPf53/20mP8XwxXF6E8X3TE+/6hpHy7qKrBZ1NhD324w/bVULSQKhJyAftvbLy/RHyuCwOM5/nP8BpVHE7owYw21wxnv3sJF2CvPJUlWQGMUrbv3Gs6CNOQWHPnGCqck3L6vGI1vp1j6JplhVhUej8At64oen6DlSOBD6d1vZKnDAiA7DOqBGSN9MgbPxPhUiFFj/94mGal3mngQB31r8xQ4aja6pQ5sOKf3YGclVAmKI1oNZCDpXMcglLw5ps7CfQSxvS51p23dbZswZMd0TVhCrTs10Vq6+XyKE4R4qJquPN8ljVmPwwvbCiSkR7eARB0T2+hz3CR2Ah8wyQlXiMu4yuQJMMwxRrbSSF2FPH0Qzc92xeyB1885Z1OaMElBH/JxHSaat35TbrIhYibwfTcbez8tforbBv7Ri+FhViahga3yr+RMX9Bkoq8vZcl6wLMyVrNl31G0SOudy8dR8UAP8O9xY+yQCSDDPfI3PRzxTtqjJom73rq8rtDuF0nK6+F+CYtoQbskrWMZOgXAYIlS59QAMvZMDCJaNNz7epVUPN6hqRv/qvwz4xnW48E1yP/BgS40u2y5xGsi/ao2lnXBpWigmxCOtIeq4qlJTUnIvVr8JUHEp8aFnIqg0ox1uUuIrWzVmEVNMnVeSolkIY3cr55IFgSRAVZQyO8ld+v2bzAZUhhDte2V/XDRvxcVw26tlTx+EHvzDiPD4Q7+C/kE0vh7B2jcNEMB"/>
        </form>
    </div>
</div>
<script>
    (function(){
        window._cf_chl_opt={
            cvId: '2',
            cType: 'managed',
            cNounce: '79894',
            cRay: '753d6b047864ce44',
            cHash: 'b91de03a1bc1e3d',
            cUPMDTk: "\/search\/file?__cf_chl_tk=s2Ax0w5gbs2inR3gIEhGedEKmPXd8A48p0ZhddEuzpg-1664713498-0-gaNycGzNBaU",
            cFPWv: 'b',
            cTTimeMs: '1000',
            cTplV: 4,
            cTplB: 'cf',
            cRq: {
                ru: 'aHR0cHM6Ly9hc2NpaTJkLm5ldC9zZWFyY2gvZmlsZQ==',
                ra: 'TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzk5LjAuNDg0NC44MiBTYWZhcmkvNTM3LjM2',
                rm: 'R0VU',
                d: 'O4NOuIpwXo/Tjj3IwtFsdm2KBbbz7U51oJYsztE2UDArEqQMU6sjY95EvMoaCQmsntr94Y48ICrc5R7Nh9tL4z6b76FdOMN5ZOloRi9i6SoCa3oJ2UqL8tWTmWKadFXXRAYU82zKbdIJSdRAzaEPQQLltNTnBI88Arl/DtcDg1EetjyYStLwb9H+gasD5qnWNzIxuLjHsqCm43S2MfHjkc/aGtSL965sLOBPeHrFb2jor7tuofHOztRzDOo9W9UEADY0QWfvp9/FzFjL9SX5V0DKKYLUAvloMXwRXz/jd2RIJmWUZSmjF0y4vUBkzUfUkcs1/rmOeDDKVgBFXOzsplAiFNff7lbVmVGJG0OwXJaFlBmqcf0bPvB6oAGjE1bcHNIHzd0blGOnpu0yKvWtSNPmhb0KalRWPU2E+ybWuIaPDB8sKU8dLAGLkQl69kyNTz2pg9OpTcGK2j39yXwHMajsvw1QJgDJ87li3CFcj56yHu55JVxcqYb4UZq4P/GlP4CY3ObWu9RRAwcRK3zuwZJapfvTZp+vgbgVSvESk+AC/YZFyF/bL3NWMNWh/OBvdruVWVZYqOk29KQ/mMJM+noeb5CnvREjkQIhejUwRLDQ0Uhg3HVc6t2zDWqJDvejlaDCGciKGJqsdIvqcSPqqTEajq3ACsuEQ69qAKogVLLcLoW6ljlAHhu9FMxssqGO',
                t: 'MTY2NDcxMzQ5OC4zMTcwMDA=',
                m: 'sWsmE0vuV7vVHCmO7RaQp3c/zVN/EMtDMfpspEYgVLY=',
                i1: '3A0Qmixrk3qYJL7hIXkRjA==',
                i2: '7snQa/cpUHI35aYg7VSWHA==',
                zh: 'lBxCieQpkhIHubgKnc9ER+ae9k4MjDZMrA0aIX8vY9I=',
                uh: 'FG/rQB5A3oMsViSOvzHy/Yz4Yg41uhiEOKdRek6QBDY=',
                hh: 'UvL/fnJa0zOA1MTuEDgiLTU6TTQ4uCIB+JWwFzj8+nY=',
            }
        };
        var trkjs = document.createElement('img');
        trkjs.setAttribute('src', '/cdn-cgi/images/trace/managed/js/transparent.gif?ray=753d6b047864ce44');
        trkjs.setAttribute('style', 'display: none');
        document.body.appendChild(trkjs);
        var cpo = document.createElement('script');
        cpo.src = '/cdn-cgi/challenge-platform/h/b/orchestrate/managed/v1?ray=753d6b047864ce44';
        window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;
        window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, -window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;
        if (window.history && window.history.replaceState) {
            var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;
            history.replaceState(null, null, "\/search\/file?__cf_chl_rt_tk=s2Ax0w5gbs2inR3gIEhGedEKmPXd8A48p0ZhddEuzpg-1664713498-0-gaNycGzNBaU" + window._cf_chl_opt.cOgUHash);
            cpo.onload = function() {
                history.replaceState(null, null, ogU);
            };
        }
        document.getElementsByTagName('head')[0].appendChild(cpo);
    }());
</script>

    <div class="footer" role="contentinfo">
        <div class="footer-inner">
            <div class="clearfix diagnostic-wrapper">
                <div class="ray-id">Ray ID: <code>753d6b047864ce44</code></div>
            </div>
            <div class="text-center">Performance &amp; security by <a rel="noopener noreferrer" href="https://www.cloudflare.com?utm_source=challenge&utm_campaign=m" target="_blank">Cloudflare</a></div>
        </div>
    </div>
</body>
</html>

2022-10-02 20:24:58.385 | INFO     | __main__:show_result:39 - https://ascii2d.net/search/file
2022-10-02 20:24:58.385 | ERROR    | asyncio.events:_run:88 - An error has been caught in function '_run', process 'MainProcess' (6390), thread 'MainThread' (139734124500800):
Traceback (most recent call last):

  File "demo_ascii2d.py", line 54, in <module>
    loop.run_until_complete(test())
    │    │                  └ <function test at 0x7f16532d3400>
    │    └ <function BaseEventLoop.run_until_complete at 0x7f16587e1c80>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>

  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 571, in run_until_complete
    self.run_forever()
    │    └ <function BaseEventLoop.run_forever at 0x7f16587e1bf8>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
    self._run_once()
    │    └ <function BaseEventLoop._run_once at 0x7f16587e4620>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
    handle._run()
    │      └ <function Handle._run at 0x7f1658a19950>
    └ <Handle <TaskStepMethWrapper object at 0x7f16532d2828>()>
> File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
    │    │            │    │           │    └ <member '_args' of 'Handle' objects>
    │    │            │    │           └ <Handle <TaskStepMethWrapper object at 0x7f16532d2828>()>
    │    │            │    └ <member '_callback' of 'Handle' objects>
    │    │            └ <Handle <TaskStepMethWrapper object at 0x7f16532d2828>()>
    │    └ <member '_context' of 'Handle' objects>
    └ <Handle <TaskStepMethWrapper object at 0x7f16532d2828>()>

  File "demo_ascii2d.py", line 24, in test
    show_result(resp)
    │           └ <PicImageSearch.model.ascii2d.Ascii2DResponse object at 0x7f16532814a8>
    └ <function show_result at 0x7f16532d37b8>

  File "demo_ascii2d.py", line 40, in show_result
    logger.info(resp.raw[1].origin)
    │      │    │    └ []
    │      │    └ <PicImageSearch.model.ascii2d.Ascii2DResponse object at 0x7f16532814a8>
    │      └ <function Logger.info at 0x7f165712e048>
    └ <loguru.logger handlers=[(id=0, level=10, sink=<stderr>)]>

IndexError: list index out of range
NekoAria commented 2 years ago

你看看你的 OpenSSL 版本:

import ssl
print(ssl.OPENSSL_VERSION)
Sunosay commented 2 years ago

你看看你的 OpenSSL 版本:

import ssl
print(ssl.OPENSSL_VERSION)

OpenSSL 1.0.2k-fips 26 Jan 2017

NekoAria commented 2 years ago

你看看你的 OpenSSL 版本:

import ssl
print(ssl.OPENSSL_VERSION)

OpenSSL 1.0.2k-fips 26 Jan 2017

呃,这版本也太老了,升级一下再看看。 ~而且这个版本还没修复 heartbleed 漏洞。~ 看错了

Sunosay commented 2 years ago

你看看你的 OpenSSL 版本:

import ssl
print(ssl.OPENSSL_VERSION)

OpenSSL 1.0.2k-fips 26 Jan 2017

呃,这版本也太老了,升级一下再看看。 ~而且这个版本还没修复 heartbleed 漏洞。~ 看错了

好家伙 折腾了半天 终于好了 感觉就离谱 我明明openssl已经升级好了 py3.7编译了好几遍都是老版本 然后又精神恍惚的绑了几遍软链接 突然python显示是新版本 python3显示的是老版本 明明绑的命令是一样的... 总之多谢大佬了(●ˇ∀ˇ●)

NekoAria commented 2 years ago

说起来之前都没人遇到并反馈这个问题,会不会单纯就和 Python 以及 OpenSSL 版本有关系? 如果你现在把 demo 里改一下: cf_bypass = False ,再跑一下会是什么结果?

Sunosay commented 2 years ago

说起来之前都没人遇到并反馈这个问题,会不会单纯就和 Python 以及 OpenSSL 版本有关系? 如果你现在把 demo 里改一下: cf_bypass = False ,再跑一下会是什么结果?

之前是系统装起来自带的,已经开始有点后悔最开始装的7了 试了一下不行,新型报错(因为不知道openssl要多新,所以直接升到了最新(:з)∠) ~用力过猛~

[zyw@VM-16-4-centos python]$ python demo_ascii2d.py 
OpenSSL 1.1.1n  15 Mar 2022
SSL handshake failed on verifying the certificate
protocol: <asyncio.sslproto.SSLProtocol object at 0x7f577ad20438>
transport: <_SelectorSocketTransport fd=7 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 625, in _on_handshake_complete
    raise handshake_exc
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/usr/local/python3/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
SSL error in data received
protocol: <asyncio.sslproto.SSLProtocol object at 0x7f577ad20438>
transport: <_SelectorSocketTransport closing fd=7 read=idle write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/usr/local/python3/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
SSL handshake failed on verifying the certificate
protocol: <asyncio.sslproto.SSLProtocol object at 0x7f577ad20a20>
transport: <_SelectorSocketTransport fd=7 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 625, in _on_handshake_complete
    raise handshake_exc
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/usr/local/python3/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
SSL error in data received
protocol: <asyncio.sslproto.SSLProtocol object at 0x7f577ad20a20>
transport: <_SelectorSocketTransport closing fd=7 read=idle write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/usr/local/python3/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
SSL handshake failed on verifying the certificate
protocol: <asyncio.sslproto.SSLProtocol object at 0x7f577ad20d30>
transport: <_SelectorSocketTransport fd=7 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 625, in _on_handshake_complete
    raise handshake_exc
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/usr/local/python3/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
SSL error in data received
protocol: <asyncio.sslproto.SSLProtocol object at 0x7f577ad20d30>
transport: <_SelectorSocketTransport closing fd=7 read=idle write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "/usr/local/python3/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/usr/local/python3/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
2022-10-03 01:20:52.369 | ERROR    | asyncio.events:_run:88 - An error has been caught in function '_run', process 'MainProcess' (2445), thread 'MainThread' (140013956937536):
Traceback (most recent call last):

  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/connector.py", line 980, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore[return-value]  # noqa
                 │    │     │                  │       └ {'ssl': <ssl.SSLContext object at 0x7f577ad688d0>, 'family': <AddressFamily.AF_INET6: 10>, 'proto': 6, 'flags': <AddressInfo....
                 │    │     │                  └ (functools.partial(<class 'aiohttp.client_proto.ResponseHandler'>, loop=<_UnixSelectorEventLoop running=True closed=False deb...
                 │    │     └ <function BaseEventLoop.create_connection at 0x7f5780af52f0>
                 │    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
                 └ <aiohttp.connector.TCPConnector object at 0x7f577ad8bc50>
  File "/usr/local/python3/lib/python3.7/asyncio/base_events.py", line 959, in create_connection
    raise exceptions[0]
          └ [OSError(113, "Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)")]
  File "/usr/local/python3/lib/python3.7/asyncio/base_events.py", line 946, in create_connection
    await self.sock_connect(sock, address)
          │    │            │     └ ('2606:4700:20::681a:548', 443, 0, 0)
          │    │            └ <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET6, type=SocketKind.SOCK_STREAM, proto=6>
          │    └ <function BaseSelectorEventLoop.sock_connect at 0x7f5780635e18>
          └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/python3/lib/python3.7/asyncio/selector_events.py", line 464, in sock_connect
    return await fut
                 └ <Future finished exception=OSError(113, "Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)")>
  File "/usr/local/python3/lib/python3.7/asyncio/selector_events.py", line 494, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
                  └ 113

OSError: [Errno 113] Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  File "demo_ascii2d.py", line 57, in <module>
    loop.run_until_complete(test())
    │    │                  └ <function test at 0x7f577ad8fa60>
    │    └ <function BaseEventLoop.run_until_complete at 0x7f5780af3620>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>

  File "/usr/local/python3/lib/python3.7/asyncio/base_events.py", line 571, in run_until_complete
    self.run_forever()
    │    └ <function BaseEventLoop.run_forever at 0x7f5780af3598>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/python3/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
    self._run_once()
    │    └ <function BaseEventLoop._run_once at 0x7f5780af5f28>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/python3/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
    handle._run()
    │      └ <function Handle._run at 0x7f5780abe268>
    └ <Handle <TaskStepMethWrapper object at 0x7f577ad8bbe0>()>
> File "/usr/local/python3/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
    │    │            │    │           │    └ <member '_args' of 'Handle' objects>
    │    │            │    │           └ <Handle <TaskStepMethWrapper object at 0x7f577ad8bbe0>()>
    │    │            │    └ <member '_callback' of 'Handle' objects>
    │    │            └ <Handle <TaskStepMethWrapper object at 0x7f577ad8bbe0>()>
    │    └ <member '_context' of 'Handle' objects>
    └ <Handle <TaskStepMethWrapper object at 0x7f577ad8bbe0>()>

  File "demo_ascii2d.py", line 26, in test
    resp = await ascii2d.search(file=file)
                 │       │           └ 'images/test01.jpg'
                 │       └ <function Ascii2D.search at 0x7f577ad8a840>
                 └ <PicImageSearch.ascii2d.Ascii2D object at 0x7f577ad8be10>

  File "/data/python/PicImageSearch/ascii2d.py", line 55, in search
    resp_text, resp_url, _ = await self.post(ascii2d_url, data=data)
                                   │    │    │                 └ {'file': <_io.BufferedReader name='images/test01.jpg'>}
                                   │    │    └ 'https://ascii2d.net/search/file'
                                   │    └ <function HandOver.post at 0x7f577ad8a7b8>
                                   └ <PicImageSearch.ascii2d.Ascii2D object at 0x7f577ad8be10>

  File "/data/python/PicImageSearch/network.py", line 171, in post
    url, params=params, data=data, json=json, **kwargs
    │           │            │          │       └ {}
    │           │            │          └ None
    │           │            └ {'file': <_io.BufferedReader name='images/test01.jpg'>}
    │           └ None
    └ 'https://ascii2d.net/search/file'

  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/client.py", line 1141, in __aenter__
    self._resp = await self._coro
    │    │             │    └ <member '_coro' of '_BaseRequestContextManager' objects>
    │    │             └ <aiohttp.client._RequestContextManager object at 0x7f577ad8be80>
    │    └ <member '_resp' of '_BaseRequestContextManager' objects>
    └ <aiohttp.client._RequestContextManager object at 0x7f577ad8be80>
  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/client.py", line 537, in _request
    req, traces=traces, timeout=real_timeout
    │           │               └ ClientTimeout(total=30, connect=None, sock_read=None, sock_connect=None)
    │           └ []
    └ <aiohttp.client_reqrep.ClientRequest object at 0x7f577ad8bfd0>
  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/connector.py", line 540, in connect
    proto = await self._create_connection(req, traces, timeout)
                  │    │                  │    │       └ ClientTimeout(total=30, connect=None, sock_read=None, sock_connect=None)
                  │    │                  │    └ []
                  │    │                  └ <aiohttp.client_reqrep.ClientRequest object at 0x7f577ad8bfd0>
                  │    └ <function TCPConnector._create_connection at 0x7f577ad9bae8>
                  └ <aiohttp.connector.TCPConnector object at 0x7f577ad8bc50>
  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/connector.py", line 901, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
                     │    │                         │    │       └ ClientTimeout(total=30, connect=None, sock_read=None, sock_connect=None)
                     │    │                         │    └ []
                     │    │                         └ <aiohttp.client_reqrep.ClientRequest object at 0x7f577ad8bfd0>
                     │    └ <function TCPConnector._create_direct_connection at 0x7f577ada20d0>
                     └ <aiohttp.connector.TCPConnector object at 0x7f577ad8bc50>
  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/connector.py", line 1206, in _create_direct_connection
    raise last_exc
          └ ClientConnectorError(ConnectionKey(host='ascii2d.net', port=443, is_ssl=True, ssl=None, proxy=None, proxy_auth=None, proxy_he...
  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/connector.py", line 1187, in _create_direct_connection
    client_error=client_error,
                 └ <class 'aiohttp.client_exceptions.ClientConnectorError'>
  File "/usr/local/python3/lib/python3.7/site-packages/aiohttp/connector.py", line 988, in _wrap_create_connection
    raise client_error(req.connection_key, exc) from exc
          │            │   └ <property object at 0x7f577b6e8728>
          │            └ <aiohttp.client_reqrep.ClientRequest object at 0x7f577ad8bfd0>
          └ <class 'aiohttp.client_exceptions.ClientConnectorError'>

aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)]
NekoAria commented 2 years ago

应该是你没创建本地证书文件的软连接吧。

运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

Sunosay commented 2 years ago

应该是你没创建本地证书文件的软连接吧。

运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')]

aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)]

aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

NekoAria commented 2 years ago

应该是你没创建本地证书文件的软连接吧。

运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')]

aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)]

aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

因为那个 cf_bypass 忽略证书验证了,所以不会有这个报错。

你先看看你有没有原来的证书,没有就用 OpenSSL 生成一个:

openssl req -x509 -new -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650
Sunosay commented 2 years ago

应该是你没创建本地证书文件的软连接吧。 运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

因为那个 cf_bypass 忽略证书验证了,所以不会有这个报错。

你先看看你有没有原来的证书,没有就用 OpenSSL 生成一个:

openssl req -x509 -new -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650

做好了 在/certs文件夹下面做了cert.pem key.pem 请问一下软连接是要绑定什么(:з)∠)

NekoAria commented 2 years ago

应该是你没创建本地证书文件的软连接吧。 运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

因为那个 cf_bypass 忽略证书验证了,所以不会有这个报错。 你先看看你有没有原来的证书,没有就用 OpenSSL 生成一个:

openssl req -x509 -new -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650

做好了 在/certs文件夹下面做了cert.pem key.pem 请问一下软连接是要绑定什么(:з)∠)

我也不确定( 因为我没解决过这个问题。 应该是只要 OpenSSL 路径里的 cert.pem 或者 certs 能找到证书,就好了吧。

Sunosay commented 2 years ago

应该是你没创建本地证书文件的软连接吧。 运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

因为那个 cf_bypass 忽略证书验证了,所以不会有这个报错。 你先看看你有没有原来的证书,没有就用 OpenSSL 生成一个:

openssl req -x509 -new -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650

做好了 在/certs文件夹下面做了cert.pem key.pem 请问一下软连接是要绑定什么(:з)∠)

我也不确定( 因为我没解决过这个问题。 应该是只要 OpenSSL 路径里的 cert.pem 或者 certs 能找到证书,就好了吧。

试了一下 都不太行 感觉我还是cf_bypass = True好了(开摆)

NekoAria commented 2 years ago

应该是你没创建本地证书文件的软连接吧。 运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

因为那个 cf_bypass 忽略证书验证了,所以不会有这个报错。 你先看看你有没有原来的证书,没有就用 OpenSSL 生成一个:

openssl req -x509 -new -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650

做好了 在/certs文件夹下面做了cert.pem key.pem 请问一下软连接是要绑定什么(:з)∠)

我也不确定( 因为我没解决过这个问题。 应该是只要 OpenSSL 路径里的 cert.pem 或者 certs 能找到证书,就好了吧。

试了一下 都不太行 感觉我还是cf_bypass = True好了(开摆)

倒不如说我比你更想摆( 比起加这个 cf_bypass ,我倒是觉得不如加 verify_ssl , False 就不确认证书。 另外我想确认下那个 ssl_ctx.options &= ~ssl.OP_NO_TLSv1_3 有没必要,你注释掉后再帮我测试测试(

Sunosay commented 2 years ago

应该是你没创建本地证书文件的软连接吧。 运行 openssl version -d 然后 cd 到 OpenSSL 的路径下, ll 看看 cert.pem 或者 certs

emm 是空的. 就是用了新版本的openssl后,几个demo运行就下面的报错.需要加上cf_bypass = True aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host raw.githubusercontent.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host ascii2d.net:443 ssl:default [Connect call failed ('2606:4700:20::681a:548', 443, 0, 0)] aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.trace.moe:443 ssl:default [Connect call failed ('2606:4700:20::6819:f32f', 443, 0, 0)]

因为那个 cf_bypass 忽略证书验证了,所以不会有这个报错。 你先看看你有没有原来的证书,没有就用 OpenSSL 生成一个:

openssl req -x509 -new -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650

做好了 在/certs文件夹下面做了cert.pem key.pem 请问一下软连接是要绑定什么(:з)∠)

我也不确定( 因为我没解决过这个问题。 应该是只要 OpenSSL 路径里的 cert.pem 或者 certs 能找到证书,就好了吧。

试了一下 都不太行 感觉我还是cf_bypass = True好了(开摆)

倒不如说我比你更想摆( 比起加这个 cf_bypass ,我倒是觉得不如加 verify_ssl , False 就不确认证书。 另外我想确认下那个 ssl_ctx.options &= ~ssl.OP_NO_TLSv1_3 有没必要,你注释掉后再帮我测试测试(

我加了verify_ssl=False后 cf_bypass就不用了 ~说来惭愧,之前我也试着加了verify_ssl=False,结果加错方法了我还以为没用~ ssl_ctx.options &= ~ssl.OP_NO_TLSv1_3我注释了,也能成功请求.

NekoAria commented 2 years ago

那我先去掉那个 cf_bypass 了,加上 verify_ssl 了。 现在应该是能正常请求了。看来和 OpenSSL 以及证书有关系。 打算发个新版来着,你再帮我测试下吧(

Sunosay commented 2 years ago

那我先去掉那个 cf_bypass 了,加上 verify_ssl 了。 现在应该是能正常请求了。看来和 OpenSSL 以及证书有关系。 打算发个新版来着,你再帮我测试下吧(

好的没问题 顺便好奇一下你的openssl版本(

NekoAria commented 2 years ago

那我先去掉那个 cf_bypass 了,加上 verify_ssl 了。 现在应该是能正常请求了。看来和 OpenSSL 以及证书有关系。 打算发个新版来着,你再帮我测试下吧(

好的没问题 顺便好奇一下你的openssl版本(

当然和网络环境也有关系。我 PC 和两台服务器都没遇到过这个问题。 一台服务器在美国,一台在境内。境内那个的 OpenSSL 和你现在的版本一样。