Cách Sử Dụng HTTPX với Proxy Scrapeless: Hướng Dẫn Toàn Diện
Expert Network Defense Engineer
Hôm nay, chúng ta sẽ học cách sử dụng proxies với HTTPX. Một proxy ngồi giữa trình thu thập thông tin của bạn và trang web mà bạn đang cố gắng thu thập dữ liệu. Trình thu thập thông tin của bạn gửi một yêu cầu đến máy chủ proxy cho trang web mục tiêu. Proxy sau đó sẽ truy xuất trang web mục tiêu và trả về cho trình thu thập thông tin của bạn.
Cách Sử Dụng Proxies Không Được Xác Thực
Tóm lại, tất cả các yêu cầu của chúng ta đi đến một proxy_url. Dưới đây là một ví dụ sử dụng một proxy không cần xác thực. Điều này có nghĩa là chúng ta không sử dụng tên người dùng hoặc mật khẩu.
python
import httpx
proxy_url = "http://localhost:8030"
with httpx.Client(proxy=proxy_url) as client:
ip_info = client.get("https://geo.brdtest.com/mygeo.json")
print(ip_info.text)
Cách Sử Dụng Proxies Được Xác Thực
Khi một proxy yêu cầu một tên người dùng và mật khẩu, nó được gọi là một proxy "được xác thực". Những thông tin này được sử dụng để xác thực tài khoản của bạn và cho bạn một kết nối tới proxy.
Với xác thực, proxy_url của chúng ta trông như thế này: http://<username>:<password>@<proxy_url>:<port_number>. Trong ví dụ dưới đây, chúng ta sử dụng cả zone và username của chúng ta để tạo phần người dùng của chuỗi xác thực.
Chúng ta đang sử dụng các proxy dân cư của Scrapeless cho kết nối cơ bản của mình.
python
import httpx
username = "your-username"
zone = "your-zone-name"
password = "your-password"
proxy_url = f"http://scrapeless-customer-{username}-zone-{zone}:{password}@scrapeless.proxy.io:33335"
ip_info = httpx.get("https://geo.brdtest.com/mygeo.json", proxy=proxy_url)
print(ip_info.text)
Đoạn mã trên khá đơn giản. Đây là cơ sở cho bất kỳ loại proxy nào bạn muốn thiết lập.
- Đầu tiên, chúng ta tạo các biến cấu hình của mình:
username,zonevàpassword. - Chúng ta sử dụng chúng để tạo
proxy_url:f"http://scrapeless-customer-{username}-zone-{zone}:{password}@scrapeless.proxy.io:33335". - Chúng ta gửi yêu cầu đến API để lấy thông tin chung về kết nối proxy của mình.
Phản hồi của bạn nên trông giống như thế này:
json
{"country":"US","asn":{"asnum":20473,"org_name":"AS-VULTR"},"geo":{"city":"","region":"","region_name":"","postal_code":"","latitude":37.751,"longitude":-97.822,"tz":"America/Chicago"}}
Cách Sử Dụng Proxies Lần Lượt
Khi chúng ta sử dụng các proxy lần lượt, chúng ta tạo một danh sách các proxy và chọn từ chúng một cách ngẫu nhiên. Trong mã dưới đây, chúng ta tạo một danh sách countries. Khi chúng ta gửi yêu cầu, chúng ta sử dụng random.choice() để sử dụng một quốc gia ngẫu nhiên từ danh sách. proxy_url của chúng ta được định dạng để phù hợp với quốc gia.
Ví dụ dưới đây tạo một danh sách nhỏ các proxy lần lượt.
python
import httpx
import asyncio
import random
countries = ["us", "gb", "au", "ca"]
username = "your-username"
proxy_url = "scrapeless.proxy.io:33335"
datacenter_zone = "your-zone"
datacenter_pass = "your-password"
for random_proxy in countries:
print("----------thông tin kết nối-------------")
datacenter_proxy = f"http://scrapeless-customer-{username}-zone-{datacenter_zone}-country-{random.choice(countries)}:{datacenter_pass}@{proxy_url}"
ip_info = httpx.get("https://geo.brdtest.com/mygeo.json", proxy=datacenter_proxy)
print(ip_info.text)
Ví dụ này thật sự không khác nhiều so với ví dụ đầu tiên của bạn. Dưới đây là những điểm khác biệt chính:
- Chúng ta tạo một mảng các quốc gia:
["us", "gb", "au", "ca"]. - Thay vì gửi một yêu cầu duy nhất, chúng ta gửi nhiều yêu cầu. Mỗi lần chúng ta tạo một yêu cầu mới, chúng ta sử dụng
random.choice(countries)để chọn một quốc gia ngẫu nhiên mỗi lần chúng ta tạoproxy_url.
Cách Tạo Kết Nối Proxy Dự Phòng
Trong các ví dụ trên, chúng ta chỉ sử dụng các proxy trung tâm dữ liệu và miễn phí. Các proxy miễn phí không đáng tin cậy. Các proxy trung tâm dữ liệu có xu hướng bị chặn với các trang web khó khăn hơn.
Trong ví dụ này, chúng ta tạo một hàm có tên là safe_get(). Khi chúng ta gọi hàm này, chúng ta đầu tiên cố gắng lấy url bằng một kết nối trung tâm dữ liệu. Khi điều này thất bại, chúng ta sẽ quay lại kết nối dân cư của mình.
python
import httpx
from bs4 import BeautifulSoup
import asyncio
country = "us"
username = "your-username"
proxy_url = "scrapeless.proxy.io:33335"
datacenter_zone = "datacenter_proxy1"
datacenter_pass = "datacenter-password"
residential_zone = "residential_proxy1"
residential_pass = "residential-password"
cert_path = "/home/path/to/scrapeless_proxy_ca/New SSL certificate - MUST BE USED WITH PORT 33335/Scrapeless SSL certificate (port 33335).crt"
datacenter_proxy = f"http://scrapeless-customer-{username}-zone-{datacenter_zone}-country-{country}:{datacenter_pass}@{proxy_url}"
residential_proxy = f"http://scrapeless-customer-{username}-zone-{residential_zone}-country-{country}:{residential_pass}@{proxy_url}"
async def safe_get(url: str):
async with httpx.AsyncClient(proxy=datacenter_proxy) as client:
print("đang thử với trung tâm dữ liệu")
response = await client.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
if not soup.select_one("form[action='/errors/validateCaptcha']"):
print("phản hồi thành công")
trả về phản hồi
in("phản hồi thất bại")
async với httpx.AsyncClient(proxy=residential_proxy, verify=cert_path) như client:
in("đang thử với residential")
phản hồi = await client.get(url)
in("phản hồi thành công")
trả về phản hồi
async def main():
url = "https://www.amazon.com"
phản hồi = await safe_get(url)
với open("out.html", "w") như file:
file.write(phản hồi.text)
asyncio.run(main())
Ví dụ này phức tạp hơn một chút so với các ví dụ khác mà chúng ta đã đề cập trong bài viết này.
- Chúng ta giờ đây có hai bộ biến cấu hình, một cho kết nối trung tâm dữ liệu và một cho kết nối dân cư.
- Lần này, chúng ta sử dụng một phiên `AsyncClient()` để giới thiệu một số chức năng tiên tiến hơn của HTTPX.
- Đầu tiên, chúng ta cố gắng thực hiện yêu cầu của mình với `datacenter_proxy`.
- Nếu chúng ta không nhận được phản hồi hợp lệ, chúng ta sẽ thử lại yêu cầu bằng cách sử dụng `residential_proxy`. Cũng lưu ý đến cờ `verify` trong mã. Khi sử dụng proxy dân cư của Scrapeless, bạn cần tải xuống và sử dụng chứng chỉ SSL của họ.
- Khi chúng ta đã nhận được phản hồi vững chắc, chúng ta ghi trang vào một tệp HTML. Chúng ta có thể mở trang này trong trình duyệt và xem những gì proxy thực sự truy cập và gửi lại cho chúng ta.
Nếu bạn thử đoạn mã ở trên, đầu ra và tệp HTML kết quả của bạn sẽ trông giống như sau:
đang thử với trung tâm dữ liệu
phản hồi thất bại
đang thử với residential
phản hồi thành công
## Cách mà Proxy Scrapeless Giúp
Như bạn có lẽ đã nhận thấy trong suốt bài viết này, **Scrapeless cung cấp một giải pháp proxy toàn diện** được thiết kế cho các nhu cầu thu thập dữ liệu hiện đại. Với hơn 90 triệu IP dân cư trải rộng trên 195+ quốc gia, tỷ lệ thành công lên tới 99,98%, và hỗ trợ cho một loạt các trường hợp sử dụng bao gồm thu thập dữ liệu web, nghiên cứu thị trường, giám sát giá, theo dõi SEO, xác thực quảng cáo, và bảo vệ thương hiệu, Scrapeless là lựa chọn lý tưởng cho cả quy trình làm việc dữ liệu doanh nghiệp và chuyên nghiệp.
<div style="padding: 20px 0; text-align: center;">
<a
style="
margin: 8px;
display: inline-block;
text-decoration: none;
"
href="https://www.goproxy.com/register?link=https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog-ai&utm_campaign=httpx-with-proxies"
>
<div
style="
font-weight: bold;
width: 100%;
max-width: 400px;
padding: 12px 40px;
background: #12A594;
border-radius: 5px;
border: 2px solid #12A594;
color: #fff;
cursor: pointer;
box-sizing: border-box;
font-size: 18px;
"
>
Dùng thử miễn phí >
</div>
</a>
</div>
### Proxy Dân Cư
Với hơn 90 triệu IP dân cư thực ở 195+ quốc gia, Proxy Dân Cư của Scrapeless rất lý tưởng cho việc thu thập dữ liệu, phân tích thị trường, theo dõi giá và nhiều hơn nữa.
**Tính năng chính:**
- Quay vòng proxy tự động
- Tỷ lệ thành công trung bình 99,98%
- Nhắm mục tiêu địa lý chính xác (quốc gia/thành phố)
- Giao thức HTTP/HTTPS/SOCKS5
- Thời gian phản hồi <0,5 giây
- Tốc độ và độ ổn định tuyệt vời
- Chỉ **$1.80/GB**
### Proxy IPv6
Proxy IPv6 tốc độ cao, chuyên dụng được thiết kế cho các tác vụ thu thập dữ liệu nặng.
**Tính năng:**
- Hỗ trợ HTTP(S) & SOCKS5
- Quay vòng proxy IPv6 tự động
- An ninh cao với IP chuyên dụng
- Bể IP IPv6 cao cấp 50M+
- Tuân thủ CCPA & GDPR
- Thanh toán theo GB
### Proxy Trung Tâm Dữ Liệu
Các IP trung tâm dữ liệu hiệu suất cao được tối ưu hóa cho tự động hóa quy mô lớn, thu thập dữ liệu hàng loạt và đồng thời lớn.
**Tính năng:**
- Thời gian hoạt động 99,99%
- Thời gian phản hồi cực nhanh
- Phiên ổn định lâu dài
- Truy cập API & tích hợp dễ dàng
- Băng thông cao, độ trễ thấp
- Hỗ trợ HTTP/HTTPS/SOCKS5
### Proxy ISP Tĩnh
Lý tưởng cho các hoạt động tài khoản thương mại điện tử (eBay, PayPal, Amazon), tính nhất quán danh tính lâu dài và rủi ro chặn thấp.
**Tính năng:**
- IP dân cư thực
- Thời gian hoạt động 99,99%
- Tỷ lệ chấp nhận cao & rủi ro cấm thấp
- Nhắm mục tiêu địa lý
- Giao thức HTTP/HTTPS/SOCKS5
## Kết Luận
Khi bạn kết hợp HTTPX với các proxy Scrapeless, bạn có một cách riêng tư, hiệu quả và đáng tin cậy để thu thập dữ liệu từ web. Nếu bạn muốn thay đổi proxy, thật đơn giản bằng cách sử dụng thư viện `random` tích hợp sẵn của Python. Với sự kết hợp giữa proxy trung tâm dữ liệu và proxy dân cư, bạn có thể tạo ra một kết nối thừa khả năng vượt qua hầu hết các hệ thống chặn.
Như bạn đã biết, **Scrapeless cung cấp toàn bộ gói cho các dự án thu thập dữ liệu web của bạn**. Với hơn 90 triệu IP, tỷ lệ thành công 99,98%, và sự bao phủ trên 195+ quốc gia, Scrapeless là lựa chọn lý tưởng để xử lý tất cả các nhu cầu thu thập dữ liệu của bạn - từ thu thập dữ liệu web và nghiên cứu thị trường đến theo dõi giá, theo dõi SEO, xác thực quảng cáo, và bảo vệ thương hiệu.
**Hãy bắt đầu dùng thử miễn phí với proxy Scrapeless ngay hôm nay!**
Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.



