Akamai Bot Manager is one of the most common anti-bot solutions on the market.It is used by many high-profile websites, ranging from e-commerce sites to travel sites, and, depending on its configuration, can be challenging to bypass. என் அனுபவத்திற்கு அடிப்படையில், ஒரு வலைத்தளத்தில் Akamai Bot Manager பாதுகாப்பு செயல்படுத்தும் போது நான் சந்திக்கும் வகையான மாதிரி இதுவே (சில நேரங்களில் என் பங்குகளில் ஒரு Scrapy) கழுவி மற்றும் முதல் அழைப்பு வெளியே வருகிறது. ஆனால் Akamai Bot Manager என்ன, மற்றும் ஒரு வலைத்தளம் அதை பயன்படுத்துகிறதா என்று எப்படி பார்க்க முடியும்? Akamai Bot Manager ஆய்வு Akamai's bot detection, ஒவ்வொரு modern anti-bot protection software போன்ற, பல வடிவங்களில் வேலை செய்கிறது. ஒரு முதியவன் பாதாளங்களைத் தாண்டும் தன் மந்திரக்கோலால் சாய்த்தபடியிருக்கிறான் நாட்சத்திரங்களை. .............................................................................................................................................................................. இது எத்தனையாவது [...] Network fingerprinting மேலும் inspect – உண்மையான உலாவிகள் பெரும்பாலும் இந்த நாட்களில் HTTP/2+ பயன்படுத்துகின்றன, அவர்கள் ஒரு குறிப்பிட்ட வடிவத்தில் மற்றும் வடிவத்தில் HTTP தலைப்புகளை அனுப்புகிறார்கள். ஒரு வாடிக்கையாளர் இன்னும் HTTP/1.1 பயன்படுத்துகிறாரோ அல்லது உலாவி இல்லாத வடிவத்தில் தலைப்புகள் உள்ளன என்றால், அது ஒரு குளிர்பானம் ஆகும். கூடுதலாக, Akamai உலாவி குறித்த தலைப்புகளை அல்லது மதிப்புகளை தேடுகிறது; உங்கள் தலைப்புகளை உறுதிப்படுத்தவும் (User-Agent, Accept-Language, etc.) உண்மையிலேயே ஒரு பிராந்தியக் குடிமகன் தான் முக்கியமானவர். HTTP/2 usage and header order and their order வேறு layer .Akamai ஒரு வாடிக்கையாளர் IP வீடு, மொபைல் மின்னஞ்சல், அல்லது ஒரு தரவு மையம் இருந்து இருக்கிறதா என்பதை ஆய்வு செய்கிறது. வீடு மற்றும் மொபைல் IPs (உண்மையில் உண்மையான பயனர்கள் உள்ளன போன்ற) நம்பிக்கையில் உயர் மதிப்பு, அறிந்த தரவு மின்னஞ்சல் மின்னஞ்சல் IP அட்டவணைகள் தானாக நிராகரிக்கப்படுகின்றன.ஒரு IP Address அல்லது IP subnet இருந்து உயர் மதிப்பு தேவைகள் நம்பிக்கையை குறைக்கும். • இறுதியாக, Reportable status ஐ தேர்ந்தெடுக்கவும் அதாவது Reportable அல்லது Non reportable அல்லது All ஐ தேர்ந்தெடுத்து அதனைச் சமர்ப்பிக்கவும். IP reputation and analysis residential proxies இறுதியாக Topics: ஏகத்துவத்தைக் கொண்டே பிரச்சாரத்தை ஆரம்பிக்க வேண்டும் and தாயத்து கட்டுவது ஷிர்க்கை சார்ந்தது Begin propagation with Monotheism, and Using amulets is Shirk Speaker: மவ்லவி கே.எல்.எம். Akamai வேலை Behavioral Analysis அறிகுறி Customer-Side Script மற்றும் AI Models பயன்பாடு Akamai வேலை Behavioral Analysis அறிகுறி Behavioral Analysis அறிகுறி Customer-Side Script மற்றும் AI Models பயன்பாடு ஆனால் ஒரு வலைத்தளத்தில் Akamai Bot Manager பயன்படுத்துகிறதா என்பதை நாம் எப்படி கண்டுபிடிக்க முடியும்? தவிர நீங்கள் கவனித்தால் மற்றும் ஒரு வலைத்தளத்தில் பயன்படுத்தப்படும் cookies, இது Akamai தன்னை பாதுகாக்க பயன்படுத்துகிறது என்று தெளிவான அறிகுறிகள். Wappalyzer browser extension பயன்பாடு abck Bmsc - Bmsc Wappalyzer browser extension பயன்பாடு abck abck Bmsc - Bmsc Bmsc - Bmsc இந்த மாதிரி think different type விளம்பரங்கள் தான் add industriesla இப்போ Hot... Download manager to bypass Akamai.இந்த plugin ஐ ஒருங்கிணைக்கிறது. ‘Real Browsers’ Network Signatures’ என்ற படத்தை வெளியிட்டுள்ளேன். scrapy-impersonate curl_cffi உண்மையில், Scrapy Impersonate உங்கள் Scrapy spider உத்தரவுகளை ஒரு Chrome அல்லது Firefox போன்ற "செய்ய" செய்கிறது: அது TLS fingerprints (JA3) வழங்கும் இந்த உலாவிகளை ஒப்பிடும், HTTP / 2 பயன்படுத்துகிறது, மற்றும் கூட கீழே உள்ள HTTP / 2 அட்டவணை தலைமுறைகளை மாற்றுவதற்காக உலாவிகளின் மாதிரிகளை மாற்றுகிறது. இதன் மூலம், அது TLS மற்றும் HTTP / 2 fingerprinting பிரச்சினைகளை சரிசெய்கிறது - இந்த மேலாளராக உள்ள ஒரு Scrapy spider ஒரு Akamai பாதுகாப்பான சேவையாளரை ஒரு வழியில் கையெடுக்க முடியாதபடி ஒரு சாதாரண Chrome உலாவி. பதிவிறக்கம் Scrapy Impersonate Scrapy Impersonate ஒரு சக்திவாய்ந்த கருவி என்றாலும், அது சில குறைபாடுகளை கொண்டு வருகிறது: Scrapy Impersonate is designed as a Scrapy download handler, which means it only works within Scrapy’s asynchronous framework. If your project doesn’t use Scrapy or you want to switch to a different framework (like a simple script with / or an asyncio pipeline), you can’t directly carry over its capabilities. Migrating away from Scrapy often means a of your HTTP logic, and you’d lose the built-in TLS spoofing unless you implement a new solution from scratch. Locked into Scrapy: requests httpx complete rewrite Using Scrapy Impersonate alongside proxy rotation can be tricky. Under the hood, it replaces Scrapy’s default downloader with one based on , which doesn’t seamlessly integrate with Scrapy’s proxy middleware. Early adopters discovered that HTTPS proxy support was broken because the proxy handling code was bypassed. Although fixes and workarounds (like disabling Scrapy’s built-in proxy handling and configuring directly) exist, it’s harder to rotate proxies or handle proxy authentication with this setup. Robust error handling for proxy failures (e.g., detecting a dead proxy and retrying) is not as straightforward as with Scrapy’s standard downloader, because errors bubble up from the layer and may not trigger Scrapy’s usual retry logic. Proxy Rotation Challenges: curl_cffi curl_cffi curl Scrapy Impersonate currently supports a finite list of browser fingerprints (Chrome, Edge, Safari, etc., up to certain versions). This list can lag behind the latest browser releases. You might be stuck impersonating an older browser version, which could be a problem if a target site specifically requires the nuances of a newer TLS handshake (some advanced WAFs actually check minor details that change between Chrome versions). Maintenance and Flexibility: Perhaps most importantly, even with proper TLS and HTTP/2 impersonation, . For websites that have implemented a higher level of protection, checking also the browser fingerprint, any browserless configuration, including Scrapy Impersonate, isn’t sufficient for Akamai or similar top-tier bot defenses. You might get past the TLS handshake, but fail on other signals (like the absence of the expected sensor data or subtle discrepancies in headers/cookies). In other words, it’s a piece of the puzzle, not a complete solution. Not a Silver Bullet: Akamai Bot Manager can still detect and block you இன்று நாம் காணும் தீர்வு முதல் இரண்டு விஷயங்களை தீர்க்க உதவுகிறது: நாங்கள் ஒருங்கிணைக்கப்படும் , ஒரு சிறந்த TLS fingerprint மற்றும் ஒரு rotating residential proxy எங்கள் IPs rotating மற்றும் அதிக ரீமேக் மதிப்பீடுகள் வேண்டும். மூன்றாவது Proxy மூன்றாவது Proxy TLS Fingerprints மற்றும் JA3 புரிதல் இதற்கு முன், நாம் என்ன தவறு செய்கிறோம் என்பதை புரிந்து கொள்வது முக்கியம்.ஒவ்வொரு HTTPS வாடிக்கையாளர் ஒரு தனிமனிதனாக உள்ளது. இந்த fingerprint is a combination of the TLS protocol version and a bunch of options the client says it supports – think of it as the client’s “dialect” of speaking TLS. key components include: TLS fingerprint e.g. TLS 1.2 vs TLS 1.3. Modern browsers will offer 1.3 (while still allowing 1.2 for compatibility). Older clients or some libraries might only do 1.2. Supported TLS Version: the list of cryptographic algorithms the client can use, in preferred order. Browsers tend to have long lists including ciphers like AES-GCM, ChaCha20, etc., plus some GREASE (randomized) values to prevent fingerprinting. Cipher Suites: extra features in TLS, like Server Name Indication (SNI), supported groups (elliptic curves), ALPN (which is used for HTTP/2 negotiation), etc. Both the presence of certain extensions and their order matter. Extensions: The concept of இந்த TLS Client Hello அறிகுறிகள் எழுத ஒரு சாதாரணமான வழி. JA3, அதன் படைப்பாளிகளின் முதன்மைகளைப் பின்பற்றுவதன் மூலம் பெயரிட்டது, ஒரு குறிப்பிட்ட வகையில் மேற்பட்ட இடங்களை ஒப்பிட்டு ஒரு fingerprint string உருவாக்குகிறது: JA3 fingerprinting JA3_string = TLSVersion,CipherSuiteIDs,ExtensionIDs,EllipticCurveIDs,EllipticCurveFormatIDs ஒவ்வொரு பதிவும் (Cifers, Extensions, etc.) இவ்விரு பகுதிகளிலும் உதாரணமாக, ஒரு Chrome உலாவி ஒரு JA3 துளை உருவாக்க முடியும்: - , 771,4866-4867-4865-....-47-255,0-11-10-16-23-...-21,29-23-30-25-24,0-1-2 இது TLS 1.2 (771 is 0x0303), ஒரு குறிப்பிடத்தக்க சேகரிப்பு சேகரிப்பு சேகரிப்புகள், நீட்சிகள், ஆதரித்த குழப்பங்கள், மற்றும் குழப்பம் வடிவங்கள் (அது standardized IDs).The JA3 string is then ஒரு முதியவன் பாதாளங்களைத் தாண்டும் தன் மந்திரக்கோலால் சாய்த்தபடியிருக்கிறான் நாட்சத்திரங்களை. .............................................................................................................................................................................. இது எத்தனையாவது [...] MD5 hashed ஏனெனில் இவ்வாறான அறிகுறிகள் ஏனெனில் .Chrome Version X Windows இல் இருக்கும் அதே JA3 அறிகுறிகள் கீழே பட்டியலில் அமைக்க.Firefox தங்கள் தனிப்பட்ட JA3 இருக்கும். browser TLS stacks are fairly uniform எப்போதும் Python's requests library (which uses OpenSSL under the cap) has a JA3 that is totally different from any mainstream browser, so it is easily detectable. Akamai போன்ற anti-bot சேவைகள் JA3 ஹேசின் தரவு அணுகுமுறைகளை உபயோகிக்கிறது: உங்கள் JA3 "அறியப்பட்ட நல்ல" பட்டியலில் இல்லையென்றால் (நேரமான உலாவிகள்) அல்லது அது ஒரு அறியப்பட்ட அணுகுமுறை பட்டியலில் இருந்தால், நீங்கள் பிரதிபலிக்கப்படுவீர்கள். இதனால், அம்பேத்கர் கட்சியின் குற்றச்சாட்டுகள் தொடர்பான விசாரணையில், . we need our client’s JA3 to match a popular browser இது பொதுவாக புதிய Chrome அல்லது Firefox அறுவை சிகிச்சை (அவர்கள் வலைத்தளத்தில் மிகவும் பிரபலமான legit பயனர்கள் என்பதால்) பின்பற்றுகிறது. User-Agent string ஐ மாற்றிக்கொள்வது மட்டுமே போதுமானது அல்ல – we must modify the low-level TLS handshake. Scrapy Impersonate this does internally via (இது தனியே சுழற்சி மற்றும் TLS பிராண்ட்ஸ் ஒரு சிறப்பு படைப்பை பயன்படுத்துகிறது.ஆனால் Scrapy வெளியே, நாம் அதே விளைவை அடைய வேறு வழி தேவை. curl_cffi TLS Impersonation Proxy + Residential Proxy எங்கள் தீர்மானம் ஒரு உண்மையான உலாவி பயனர் இருந்து எங்கள் கிளப்பியர் virtually indistinguishable செய்ய: chain two proxies JA3Proxy is an open-source tool that acts as an HTTP(S) proxy that replays traffic with a chosen TLS fingerprint. In other words, you run JA3Proxy locally, configure it to imitate a specific browser’s TLS handshake, and then direct your scraper traffic through it. JA3Proxy will terminate your TLS connection and initiate a new TLS handshake to the target site using the impersonated fingerprint. From the target site’s perspective, it looks like, say, a Chrome browser connecting. The beauty of this approach is that – you can use Python , , cURL, or anything, by simply pointing it at JA3Proxy. You are no longer locked into Scrapy or any particular library to get browser-like TLS; the proxy takes care of it. JA3Proxy for TLS Impersonation: it’s client-agnostic requests httpx Under the hood, JA3Proxy uses (an advanced TLS library in Go) to customize the Client Hello. It supports a variety of client profiles (Chrome, Firefox, Safari, etc., across different versions). You can, for example, configure it to mimic the latest browsers available in the library. For our needs, we’d choose the latest available Chrome fingerprint, Chrome 133. As for Scrapy-Impersonate, the integration of the latest browsers in the library can take some time, but until this gets regularly updated, it’s not an issue. uTLS One thing to note: JA3Proxy focuses on TLS fingerprints (the JA3 part). It doesn’t inherently modify HTTP headers (other than those that relate to TLS, like ALPN for HTTP/2) or handle higher-level browser behaviors. It gets us past the network fingerprinting, which is the hardest to change, but we must still ensure our HTTP headers and usage patterns are correct. Luckily, we can manually set headers in our HTTP client to mimic a browser (User-Agent, etc.), and HTTP/2 can be achieved as long as the TLS negotiation allows it (Chrome’s Client Hello will advertise ALPN support for h2, so if the site supports it, JA3Proxy will negotiate HTTP/2). The second part of the chain is an upstream . This will take care of the IP reputation and distribution. Residential Proxy for IP Rotation: residential proxy The combined effect is powerful: to Akamai, your scraper now looks like Chrome 133 running on a residential IP. The TLS handshake matches Chrome’s JA3, the HTTP/2 and headers can be adjusted to match Chrome, and the source IP is a regular household. This addresses the major fingerprinting vectors at the network level. It doesn’t solve Akamai’s JavaScript-based challenges by itself, but this should be enough to bypass most of the websites you’ll encounter. JA3Proxy பயன்பாடு நாம் JA3Proxy அமைக்க மற்றும் ஒரு வீடு proxy உடன் சேமிக்க. JA3Proxy பயன்பாடு JA3Proxy இல் எழுதப்படுகிறது Go. நீங்கள் இரண்டு எளிதான விருப்பங்கள் உள்ளன: Source இருந்து compile or use a Docker container. To build from source, you will need Go installed. Run: git clone https://github.com/LyleMi/ja3proxy.git cd ja3proxy make இது ஒரு producer a ஆங்கிலத்தில் சொல்வதென்றால் (alternatively, you can ஏனெனில், திட்டம் Go-based ஆகும் என்பதால். ja3proxy go build நீங்கள் Docker விரும்பினால், GitHub Container Registry இல் ஒரு pre-built image உள்ளது. docker pull ghcr.io/lylemi/ja3proxy:latest அடுத்த பதிவைப் படித்துப் பார்க்கலாம்.அதைப் படித்துப் பார்க்கலாம் (We will show the run command in a moment.)Docker is convenient because it packages everything without needing a local Go environment. docker run ஒரு முதியவன் பாதாளங்களைத் தாண்டும் தன் மந்திரக்கோலால் சாய்த்தபடியிருக்கிறான் நாட்சத்திரங்களை. .............................................................................................................................................................................. இது எத்தனையாவது [...] TLS சான்றிதழ் பெற அல்லது உருவாக்க JA3Proxy ஒரு HTTPS நிராகரிப்பாளராக செயல்பட முடியும், எனவே அது TLS ஐ அணுகும் மற்றும் உங்கள் வாடிக்கையாளரிடம் அதன் தனிப்பட்ட சான்றிதழ் வழங்கும். தேடித் தேடி, தேடித் தேடி மற்றும் நீங்கள் ஒரு சான்றிதழ் வழங்காவிட்டால், நீங்கள் அதை சுத்திகரிப்பு முறையில் இயக்க முடியும் (ஒரு சரியான HTTP பிரேக்ஸ்) மற்றும் உங்கள் வாடிக்கையாளரில் சான்றிதழ் சான்றிதழ் சான்றிதழ் தவிர்க்க (நிறுத்தப்படவில்லை, ஆனால் சோதனை செய்ய அனுமதிக்கப்படும்). cert.pem key.pem சிறந்த பயிற்சி ஒரு தன்னார்வப்பட்ட root சான்றிதழ் மற்றும் திறனை உருவாக்க, மற்றும் உங்கள் scraper நம்பிக்கை அந்த சான்றிதழ், எனவே நீங்கள் பாதுகாப்பு எச்சரிக்கைகள் இல்லாமல் பயணத்தை அணுக முடியும் என்று அமைக்க வேண்டும். openssl req -x509 -newkey rsa:2048 -sha256 -days 365 -nodes -keyout key.pem -out cert.pem -subj "/CN=JA3Proxy" இது ஒரு படைப்பு / ஒரு வருடத்திற்கு ஒரு வருடமாக உபயோகமாக இருக்கும். (உங்கள் தயாரிப்பு பயன்படுத்தும் போது, நீங்கள் அந்த அமைப்பு இருந்தால் ஒரு சாதாரண உள்ளூரில் CA பயன்படுத்தலாம், ஆனால் பெரும்பாலான காப்பீட்டு நோக்கங்களுக்காக, ஒரு தனிப்பட்ட எழுதப்பட்ட உங்கள் வாடிக்கையாளர் அதை நம்ப முடியும் வரை நன்றாக உள்ளது.) cert.pem key.pem JA3Proxy ஐ ஒரு Chrome fingerprint மூலம் தொடங்கவும் இப்போது நாம் proxy செய்கிறோம். binary பயன்படுத்தினால், இப்படி ஒரு கட்டளை செயல்படுங்கள்: ./ja3proxy -port 8080 -client Chrome -version 131 -cert cert.pem -key key.pem -upstream YOURPROXYIP:PORT இந்த ஆவணத்தை அழித்து விடுவோம்: - port 8080 (நீங்கள் தேவைப்பட்டால் வேறு port தேர்வு செய்யலாம்) -client Chrome -version 131 fingerprint profile தேர்வு செய்கிறது. in this example, it uses the built-in profile for Chrome 131. you would replace these with the profile matching the browser/version you want – for example, if Chrome 130 is supported in the latest version, you might use -client Chrome -version 130. (You can find the list of available fingerprints by checking JA3Proxy’s documentation or the uTLS library it uses. Profiles include various Chrome, Firefox versions, Safari, Edge, etc.) -cert and -key நாம் படி 2 உருவாக்கப்பட்டது TLS சான்றிதழ் கோப்புகளை குறிப்பிடவும். -upstream 123.45.67.89:1080 is the address of the upstream proxy. This should be replaced with your residential proxy endpoint. Important: JA3Proxy expects this to be a SOCKS5 proxy address__github.com__. If your provider gave you something like proxy.provider.com:8000 with a username/password, you can try the format username:password@proxy.provider.com:8000. (JA3Proxy will parse the string and should handle authentication for SOCKS5 if given in user:pass@host:port form. If that doesn't work, you might configure your residential proxy to be IP-allowed or use an IP whitelist feature to avoid auth, or run a local Dante SOCKS proxy that forward to an authen Docker பயன்படுத்தி இருந்தால், அதே அளவு இருக்கும்: docker run -p 8080:8080 \ -v $(pwd)/cert.pem:/app/cert.pem -v $(pwd)/key.pem:/app/key.pem \ ghcr.io/lylemi/ja3proxy:latest \ -client Chrome -version 133 -cert /app/cert.pem -key /app/key.pem \ -upstream YOURPROXYIP:PORT நாம் க்ளினாவில் cert மற்றும் கிளிக் சேர்த்து port 8080 விளக்குங்கள்.Adjust the command to include your actual proxy credentials/host. (அல்லது நீங்கள் குறிப்பிட்ட எந்த ஹோஸ்டிங் / ஹோஸ்டிங்) localhost:8080 ஒரு உண்மையான உலகம் பயன்பாடு Case - MrPorter.com MrPorter.com ஒரு வடிவமைப்பு மின்னஞ்சல் வணிக வலைத்தளமாகும், பல்வேறு தொழிற்சாலைகளில், Akamai Bot Manager மூலம் தன்னை பாதுகாக்கிறது. எளிய Python தேர்வைப் பயன்படுத்தி, கோப்புகளில் குறிப்பிட்டபடி அப்போது, காவல்துறை அதிகாரிகள் எதிர்பார்ப்பு தெரிவித்தனர். simple_request.py import requests URL = "https://www.mrporter.com/en-gb/mens/product/loewe/clothing/casual-shorts/plus-paula-s-ibiza-wide-leg-printed-cotton-blend-terry-jacquard-shorts/46376663162864673" headers = { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-language": "en-US,en;q=0.5", "priority": "u=0, i", "sec-ch-ua": "\"Brave\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"macOS\"", "sec-fetch-dest": "document", "sec-fetch-mode": "navigate", "sec-fetch-site": "none", "sec-fetch-user": "?1", "sec-gpc": "1", "service-worker-navigation-preload": "true", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" } def main(): try: response = requests.get(URL, headers=headers, timeout=10) response.raise_for_status() print(response.text) except requests.RequestException as e: print(f"Error fetching the page: {e}") if __name__ == "__main__": main() முடிவு : Error fetching the page: HTTPSConnectionPool(host='www.mrporter.com', port=443): Read timed out. (read timeout=10) பயன்படுத்தி , ஒரு முதியவன் பாதாளங்களைத் தாண்டும் தன் மந்திரக்கோலால் சாய்த்தபடியிருக்கிறான் நாட்சத்திரங்களை. .............................................................................................................................................................................. இது எத்தனையாவது [...] the Scrapfly TLS Fingerprint tool we can view the results Scrapfly TLS Fingerprint உபகரணங்கள் முடிவுகளை பார்க்க முடியும் ஆங்கிலத்தில் இதை Single Orgasm, Multiple Orgasm என்றும் கூறுகிறார்கள். இப்போது, JA3Proxy டாக்டர் தொடங்குவோம், ஒரு வீடு proxy இணைக்க இல்லாமல், மற்றும் என்ன நடக்கிறது பார்ப்போம். docker run -p 8080:8080 \ -v $(pwd)/cert.pem:/app/cert.pem -v $(pwd)/key.pem:/app/key.pem \ ghcr.io/lylemi/ja3proxy:latest \ -client Chrome -version 131 -cert /app/cert.pem -key /app/key.pem Message கிடைத்தது HTTP Proxy Server listen at :8080, with tls fingerprint 131 Chrome அதனால் நாம் localhost:8080 ஐ எங்கள் Python request script இல் ஒரு proxy ஆக பயன்படுத்த முடியும். என் நிறுவல் தவறுகள் மற்றொரு காரணம் நான் JA3Proxy இல் இணைக்க Python Requests பயன்படுத்த முயற்சி. சில நேரம் கழித்து, நான் பிரச்னை கேள்வியில் HTTP/2 ஆதரவு இல்லை என்று கண்டுபிடித்தேன், ஏனெனில் JA3Proxy ஒரு modern version of Chrome பயன்படுத்தும் போது செய்கிறது. எனது சோதனைகளுக்கு, நான் HTTPX பயன்படுத்த வேண்டும், கோப்புகளில் காட்டப்படும் . request_with_proxies.py இந்த விஷயத்தில், நான் Scrapfly TLS API மீண்டும் அழைத்தால், JA3 குறியீட்டின் முதல் பகுதி (Cipher order) . என்னுடைய browser இல் இருந்து என்னுடைய browser இல் இருந்து ஒரு இறுதி சோதனை, நாம் MrPorter பக்கத்தை தேட இந்த ஸ்கிரிப்டை பயன்படுத்தினால், நாம் எந்த பிரச்சினையும் இல்லாமல் அதை பதிவிறக்க முடியும். ஒரு Residential Proxy உருவாக்க இப்போது நாம் TLS அறிகுறிகள் பொய்யை தீர்க்கும் போது, நாம் இலக்கு வலைத்தளத்தில் காணப்படும் IP ஐ சுற்றி இருக்க வேண்டும். JA3Proxy எங்களுக்கு உதவ ஒரு விருப்பம் உள்ளது, upstream என்று அழைக்கப்படுகிறது. இதன் பின்னணியில் JA3Proxy இன் செயல்பாடுகள் ஏற்படும். ./ja3proxy -addr 127.0.0.1 -client Chrome -version 131 -cert cert.pem -key key.pem -upstream socks5h://USER:PASS@PROVIDER:PORT -debug நாங்கள் எங்கள் விருப்பமான proxy provider பயன்படுத்தி எங்கள் தேவைகளை உரையாட முடியும். நீங்கள் SOCKS5 மூலம் இணைக்க வேண்டும், எனவே உங்கள் வழங்குநர் இந்த அம்சத்தை ஆதரிக்கிறார் என்று உறுதி செய்யவும். இதனை செய்த பின்னர் IP ஐ சோதித்தால், என் வீட்டு சுழற்சியில் IPs உள்ளன என்பதை நான் பார்க்க முடியும், மற்றும் நான் எந்த பிரச்சனையும் இல்லாமல் MRPorter பக்கங்களை பதிவிறக்க முடியும். pierluigivinciguerra@Mac 85.AKAMAI-JA3PROXY % python3.10 request_with_proxies.py 200 {"ip":"5.49.222.37"} pierluigivinciguerra@Mac 85.AKAMAI-JA3PROXY % python3.10 request_with_proxies.py 200 {"ip":"197.244.237.29"} pierluigivinciguerra@Mac 85.AKAMAI-JA3PROXY % python3.10 request_with_proxies.py 200 {"ip":"41.193.144.67"} pierluigivinciguerra@Mac 85.AKAMAI-JA3PROXY % python3.10 request_with_proxies.py 200 {"ip":"102.217.240.216"} pierluigivinciguerra@Mac 85.AKAMAI-JA3PROXY % python3.10 request_with_proxies.py முடிவுகள் இந்த பதிவில், நாங்கள் MrPorter வலைத்தளத்தில் Akamai Bot Manager ஐ அடைக்க எப்படி பார்க்கிறோம். வலைத்தளத்தின் பாதுகாப்பு அளவு சராசரியானது, எனவே எங்கள் வழியில் Akamai சந்திக்கும் போது இது மிகவும் பிரபலமான பயன்பாடு விஷயமாகும், ஆனால் என் அனுபவத்தில் இது எளிதானது. I choose to follow the JA3Proxy approach to bypass it, so that this solution can be used in various frameworks. If you are using Scrapy, you can always rely on Scrapy Impersonate, despite its limitations, or you can try to set the cifers in the right order manually. The article is part of the “The Lab” series by Pierluigi Vinciguerra. Web Scraping பற்றி மேலும் அறிவுக்காக அவரது Substack பக்கம் பாருங்கள். Article is part of படங்கள் by அவரது பார்வை Web Scraping பற்றிய மேலும் தகவல்கள் “Labor” Pierluigi Vinciguerra படப்பிடிப்பு SubStyle “Labor”