ในบทความนี้
httpx คือไคลเอนต์ HTTP สมัยใหม่สำหรับ Python ซึ่งมี API ในรูปแบบ requests รองรับ async, HTTP/2 และการรวมการเชื่อมต่อเป็นฟีเจอร์หลัก เหมาะอย่างยิ่งสำหรับ web scraping แต่หากเข้าถึงเป้าหมายจริงจำนวนมากจาก IP datacenter เดียว ก็จะถูกบล็อกอย่างรวดเร็ว วิธีแก้คือให้ httpx ส่งผ่าน proxy โดยควรเป็น residential เพื่อให้คำขอดูเหมือนมาจากผู้ใช้จริง httpx รองรับ proxy อย่างเรียบง่ายผ่านอาร์กิวเมนต์ proxy= โดยมีข้อควรระวังเรื่องเวอร์ชันหนึ่งข้อ คือแทนที่ proxies= เดิมแล้ว และต้องติดตั้ง SOCKS5 เพียงบรรทัดเดียว คู่มือนี้จะแสดง วิธีใช้ proxy กับ httpx อย่างละเอียด ทั้ง sync, async, แบบยืนยันตัวตน, SOCKS5, mounts รายโดเมน และการหมุนเวียน จากนั้นจัดอันดับ 8 proxy ที่ดีที่สุดสำหรับ httpx ในปี 2026 DataImpulse ที่ $1/GB คือเกณฑ์เปรียบเทียบด้านความคุ้มค่า
ผมคือ Andrii Byzov, AI-Native Fractional CMO ที่เขียน scraper ด้วย httpx ทุกวัน ด้านล่างคือโค้ดที่คัดลอกไปใช้ได้ทันที ข้อควรระวังระหว่าง proxy= กับ proxies= และผู้ให้บริการที่คุ้มค่ากับงบประมาณของคุณ
ข้อเท็จจริงสำคัญ
- ตั้งค่า proxy ที่ไคลเอนต์ ด้วย
httpx.Client(proxy="http://user:pass@host:port")ระบบจะใช้ข้อมูลรับรองใน URL โดยอัตโนมัติ - ใช้
proxy=ไม่ใช่proxies=httpx รุ่นล่าสุด (0.28+) เปลี่ยนชื่ออาร์กิวเมนต์ และนำproxies=เดิมออกแล้ว จึงต้องใช้proxy=แบบเอกพจน์ - Async เหมือนกันทุกประการ คือ
httpx.AsyncClient(proxy=...)ร่วมกับawait client.get(...) - SOCKS5 ต้องติดตั้งหนึ่งครั้ง ด้วย
pip install "httpx[socks]"แล้วใช้ URL proxy แบบsocks5:// - DataImpulse คือตัวเลือกที่คุ้มค่า residential แบบจ่ายตามใช้ $1/GB, datacenter $0.50/GB, mobile $2/GB, มี IP 90M+ ครอบคลุม 195 ประเทศ รองรับ HTTP/HTTPS/SOCKS5 และกำหนดเป้าหมายตามประเทศ/เมือง/ASN
วิธีใช้ proxy กับ httpx
1. ไคลเอนต์ sync พร้อมการยืนยันตัวตน
import httpx
proxy = "http://YOUR_LOGIN__cr.us:[email protected]:823" # __cr.us = US
with httpx.Client(proxy=proxy) as client:
r = client.get("https://httpbin.org/ip")
print(r.json()) # confirm the egress IP
ข้อมูลรับรองใน URL proxy จะถูกนำไปใช้โดยอัตโนมัติ โปรดสังเกตว่าอาร์กิวเมนต์คือ proxy= แบบเอกพจน์ โค้ดเก่าใช้ proxies= ซึ่ง httpx รุ่นล่าสุดนำออกไปแล้ว
2. ไคลเอนต์ async
import httpx, asyncio
async def main():
proxy = "http://YOUR_LOGIN__cr.us:[email protected]:823"
async with httpx.AsyncClient(proxy=proxy) as client:
r = await client.get("https://httpbin.org/ip")
print(r.json())
asyncio.run(main())
3. SOCKS5 (ติดตั้งส่วนเสริม)
# pip install "httpx[socks]"
proxy = "socks5://YOUR_LOGIN__cr.us:[email protected]:824"
with httpx.Client(proxy=proxy) as client:
print(client.get("https://httpbin.org/ip").json())
httpx ส่ง SOCKS ผ่านส่วนเสริม socks ที่เลือกติดตั้งได้ หากไม่มีส่วนเสริมนี้ URL socks5:// จะทำให้เกิดข้อผิดพลาดการนำเข้า DataImpulse ให้บริการ SOCKS5 ที่พอร์ต 824
4. mounts รายโดเมนและการหมุนเวียน
# route specific domains through the proxy, others direct:
mounts = {
"all://httpbin.org": httpx.HTTPTransport(
proxy="http://YOUR_LOGIN__cr.us:[email protected]:823"),
"all://": None, # everything else goes direct
}
with httpx.Client(mounts=mounts) as client:
print(client.get("https://httpbin.org/ip").json())
เมื่อใช้ residential gateway แบบหมุนเวียนของ DataImpulse แต่ละคำขอจะออกจาก IP ใหม่ จึงไม่ต้องจัดการรายการ proxy คีย์ mounts เช่น all://httpbin.org จะส่งโดเมนนั้นผ่าน proxy ขณะที่ all:// ซึ่งเป็น wildcard จะจัดการทุกอย่างอื่น คุณจึงส่งบางโดเมนโดยตรง ส่งโดเมนอื่นผ่าน proxy หรือกำหนด proxy ต่างกันในแต่ละโดเมนได้ httpx ยังอ่านตัวแปร env HTTP_PROXY/HTTPS_PROXY โดยค่าเริ่มต้นด้วย (trust_env=True)
ภาพรวม proxy ที่ดีที่สุดสำหรับ httpx
| ผู้ให้บริการ | เหมาะกับ httpx | ราคา residential | โปรโตคอล | จุดเด่น |
|---|---|---|---|---|
| DataImpulse | คุ้มค่าที่สุดสำหรับ web scraping แบบ sync และ async | $1/GB PAYG | HTTP/HTTPS/SOCKS5 | พูล 90M+ ไม่มีวันหมดอายุ |
| Bright Data | องค์กรและแบบมีการจัดการ | ~$4/GB โปรโมชัน; $8 ราคาปกติ | HTTP/HTTPS/SOCKS5 | Web Unlocker, SERP API, datasets |
| Oxylabs | SLA สำหรับองค์กร | เริ่มต้น $6/GB | HTTP/HTTPS/SOCKS5 | พูล 175M+, scraper APIs |
| Decodo | ตลาดกลาง, ครอบคลุมตำแหน่งเต็มรูปแบบ | $3.75/GB (~$2 ที่ 1TB+) | HTTP/HTTPS/SOCKS5 | sticky สูงสุด 24h |
| IPRoyal | sticky session ระยะยาว | เริ่มต้น $7.35/GB | HTTP/HTTPS/SOCKS5 | Sticky สูงสุด 7 วัน; PAYG ราคาประหยัด |
| SOAX | ผสม residential และ mobile | $3.60/GB Starter | HTTP/HTTPS/SOCKS5 | res 155M+, mobile 33M+ |
| Webshare | ประหยัด/บริการตนเอง | res เริ่มต้น $3.50/mo; DC $2.99/mo | HTTP/SOCKS5 | แพ็กเกจฟรี, datacenter ที่ถูกที่สุด |
| NetNut | ความเสถียร ISP-residential | เริ่มต้น $3.53/GB | HTTP/HTTPS | IP static ของผู้ใช้จาก ISP |

ตัวเลือกโดยสรุป
DataImpulse คือเกณฑ์เปรียบเทียบด้านความคุ้มค่าสำหรับงาน httpx โดยมี residential แบบจ่ายตามใช้ที่ $1/GB (datacenter $0.50/GB, mobile $2/GB), IP 90M+ ใน 195 ประเทศ, HTTP/HTTPS และ SOCKS5 พร้อมการกำหนดเป้าหมายประเทศ/เมือง/ASN ในชื่อผู้ใช้ ทราฟฟิกไม่มีวันหมดอายุ จึงไม่ทำให้การรันระหว่างพัฒนาสูญเปล่ากับค่าสมาชิก อัตราความสำเร็จที่เผยแพร่คือ 99.51%; G2 4.8/5; การสนับสนุนจากเจ้าหน้าที่ตลอด 24/7 สำหรับ web scraping ปริมาณสูงแบบ sync หรือ async ด้วย httpx นี่คือต้นทุนต่ำที่สุดต่อคำขอที่สำเร็จ
Bright Data เป็นตัวเลือกสำหรับองค์กร (residential ราคาปกติ ~$8/GB, โปรโมชัน ~$4) พร้อม Web Unlocker, SERP API และ datasets Oxylabs (เริ่มต้น $6/GB, พูล 175M+) เป็นตัวเลือกระดับ SLA Decodo (เริ่มต้น $3.75/GB, sticky สูงสุด 24h) เป็นตัวเลือกตลาดกลางที่สมดุล IPRoyal (เริ่มต้น $7.35/GB, sticky สูงสุด 7 วัน) เหมาะกับสคริปต์ที่ต้องรักษา session ไว้นาน SOAX ($3.60/GB, residential 155M+ + mobile 33M+) เพิ่มพูล mobile ที่แข็งแกร่ง Webshare (แพ็กเกจฟรี, datacenter เริ่มต้น $2.99/mo) เป็นจุดเริ่มต้นแบบบริการตนเองที่ประหยัด และ NetNut (เริ่มต้น $3.53/GB) เป็นตัวเลือกด้านความเสถียร ISP-residential
ข้อผิดพลาดที่พบบ่อยเกี่ยวกับ proxy ใน httpx
- ใช้
proxies=httpx รุ่นล่าสุดนำออกแล้ว ให้ใช้proxy=แบบเอกพจน์ โค้ดที่คัดลอกจากบทแนะนำเก่าจะทำให้เกิดTypeError - ลืม
pip install "httpx[socks]"URLsocks5://ที่ไม่มีส่วนเสริมจะทำให้เกิดข้อผิดพลาดการนำเข้า - ตั้งค่า proxy ในแต่ละคำขอ httpx ตั้งค่า proxy ที่
Clientไม่ใช่แต่ละการเรียก ใช้หนึ่งไคลเอนต์ต่อหนึ่ง proxy หรือใช้mountsสำหรับการกำหนดเส้นทางรายโดเมน - ไม่มีการปรับ timeout httpx ใช้ timeout 5s โดยค่าเริ่มต้น ควรเพิ่มสำหรับ proxy ที่ช้าด้วย
httpx.Timeout - ใช้ IP datacenter กับเป้าหมายที่มีการป้องกัน จะถูกบล็อกอย่างรวดเร็ว ให้ใช้ residential และ headers ที่สมจริง
proxy แบบหมุนเวียนเทียบกับ sticky สำหรับ httpx
สำหรับ web scraping แบบกว้าง residential gateway แบบหมุนเวียนเหมาะอย่างยิ่ง เพราะแต่ละคำขอจะได้รับ IP ใหม่ ซึ่งเข้ากับไคลเอนต์ sync หรือ async ที่รวมการเชื่อมต่อของ httpx สำหรับขั้นตอนที่มีสถานะ เช่น เข้าสู่ระบบแล้วเรียกต่อ ให้ใช้ Client เดียวกับ sticky proxy เพื่อให้ IP และ cookies เดิมคงอยู่ web scraping ด้วย httpx ส่วนใหญ่ไม่มีสถานะ ดังนั้นแบบหมุนเวียนจึงเป็นค่าเริ่มต้นที่พบได้ทั่วไป
proxy ประเภทใดสำหรับ httpx: Residential, Datacenter หรือ Mobile?
- Residential ($1/GB) คือค่าเริ่มต้นสำหรับเป้าหมายที่มีการป้องกัน เช่น e-commerce, SERPs และ social หากเลือกเพียงอย่างเดียว ให้เลือกนี้
- Mobile ($2/GB) คือ IP ของผู้ให้บริการเครือข่ายจริง สำหรับเป้าหมายที่ยากที่สุดและพื้นที่ mobile-web
- Datacenter ($0.50/GB) ถูกที่สุดและเร็วที่สุดสำหรับงานที่ไม่มีการป้องกัน, APIs และโครงสร้างพื้นฐานของคุณเอง อย่าใช้กับเว็บไซต์ที่มี anti-bot เข้มข้น
DataImpulse มีทั้งสามแบบในบัญชีเดียวแบบจ่ายตามใช้ ดังนั้นไคลเอนต์ httpx เดียวจึงส่งแต่ละคำขอไปยังระดับที่เหมาะสมผ่านชื่อผู้ใช้และ endpoint ได้
วิธีเริ่มต้นใช้งาน DataImpulse กับ httpx
ขั้นตอน 1. สร้างบัญชี DataImpulse และรับข้อมูลรับรอง residential ข้อเสนอเริ่มต้น $5 / 5GB ไม่มีวันหมดอายุ เป็นงบทดสอบจริง
ขั้นตอน 2. ส่ง proxy="http://YOUR_LOGIN__cr.us:[email protected]:823" ไปยัง httpx.Client() หรือ httpx.AsyncClient() เติมรหัสประเทศสำหรับ geo-targeting และใช้ pip install "httpx[socks]" + URL socks5://...:824 สำหรับ SOCKS5
ขั้นตอน 3. ใช้ไคลเอนต์เดิมซ้ำ ตั้งค่า httpx.Timeout ที่สมเหตุสมผล ส่ง headers ที่สมจริง และปล่อยให้ gateway แบบหมุนเวียนให้ IP ใหม่ต่อคำขอ ดูบทแนะนำ DataImpulse และหน้า residential proxies
คำถามที่พบบ่อย
ใช้ proxy กับ httpx อย่างไร?
ตั้งค่าที่ไคลเอนต์: httpx.Client(proxy="http://user:pass@host:port") (หรือ httpx.AsyncClient(proxy=...) สำหรับ async) ระบบจะใช้ข้อมูลรับรองใน URL โดยอัตโนมัติ สำหรับ DataImpulse: http://YOUR_LOGIN__cr.us:[email protected]:823 โปรดสังเกตว่าอาร์กิวเมนต์คือ proxy= แบบเอกพจน์
เกิดอะไรขึ้นกับ proxies= ใน httpx?
httpx รุ่นล่าสุด (0.28+) นำอาร์กิวเมนต์ proxies= ออก และใช้ proxy= แบบเอกพจน์แทน (สำหรับ proxy เดียว) กับ mounts= (สำหรับการกำหนดเส้นทางรายโดเมน) โค้ดจากบทแนะนำเก่าที่ใช้ proxies= จะทำให้เกิด TypeError ให้เปลี่ยนเป็น proxy=
httpx รองรับ SOCKS5 proxy หรือไม่?
รองรับ โดยใช้ส่วนเสริมที่เลือกติดตั้งได้: pip install "httpx[socks]" จากนั้นส่ง URL socks5://user:pass@host:port ไปยังไคลเอนต์ หากไม่มีส่วนเสริม URL SOCKS จะทำให้เกิดข้อผิดพลาดการนำเข้า DataImpulse ให้บริการ SOCKS5 ที่พอร์ต 824
proxy ใดดีที่สุดสำหรับ httpx?
residential proxies สำหรับเป้าหมายที่มีการป้องกัน โดย DataImpulse ที่ $1/GB เป็นตัวเลือกคุ้มค่า (HTTP/HTTPS/SOCKS5, IP 90M+, ทราฟฟิกไม่มีวันหมดอายุ) Bright Data และ Oxylabs เป็นตัวเลือกสำหรับองค์กร ส่วน Webshare เริ่มต้นได้ถูกที่สุด ทั้งหมดใช้งานกับอาร์กิวเมนต์ proxy= ของ httpx ได้ ควรใช้คู่กับ headers ที่สมจริงและ timeout ที่สมเหตุสมผล
หมุนเวียน proxy ใน httpx อย่างไร?
ให้ proxy= ชี้ไปยัง residential gateway แบบหมุนเวียน (DataImpulse) แล้วแต่ละคำขอจะได้รับ IP ใหม่โดยอัตโนมัติ หากต้องการหมุนเวียนรายการ static ให้สร้างไคลเอนต์ต่อหนึ่ง proxy หรือสลับ transport ใน mounts สำหรับขั้นตอนที่มีสถานะ ให้ใช้ sticky proxy เดียวกับไคลเอนต์เดียวเพื่อให้ IP และ cookies คงอยู่
proxy สำหรับ httpx มีค่าใช้จ่ายเท่าไร?
residential ดิบคิดราคาต่อ GB: DataImpulse $1/GB (ราคาคุ้มค่าต่ำสุด), NetNut เริ่มต้น $3.53, SOAX $3.60, Decodo $3.75, Oxylabs เริ่มต้น $6, IPRoyal $7.35; Webshare มีสมาชิกแบบประหยัดเริ่มต้น $3.50/mo หน้าที่ดึงมาหนึ่งหน้ากินเพียงส่วนเล็กของ GB ดังนั้น residential แบบต่อ GB ถูกกว่า APIs แบบมีการจัดการต่อเรคคอร์ดมากสำหรับ web scraping ปริมาณสูง ตัวเลือกแบบมีการจัดการเหมาะกับเป้าหมายที่ยากที่สุด
