How to Use Proxies with Scrapy: Complete Guide
Learn how to configure GProxy residential and datacenter proxies with Scrapy for large-scale web scraping. Covers middleware setup, proxy rotation, and error handling.
Prerequisites
- ✓[
- ✓"
- ✓P
- ✓y
- ✓t
- ✓h
- ✓o
- ✓n
- ✓
- ✓3
- ✓.
- ✓8
- ✓+
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓e
- ✓d
- ✓"
- ✓,
- ✓
- ✓"
- ✓S
- ✓c
- ✓r
- ✓a
- ✓p
- ✓y
- ✓
- ✓2
- ✓.
- ✓x
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓e
- ✓d
- ✓
- ✓(
- ✓p
- ✓i
- ✓p
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓
- ✓s
- ✓c
- ✓r
- ✓a
- ✓p
- ✓y
- ✓)
- ✓"
- ✓,
- ✓
- ✓"
- ✓G
- ✓P
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓a
- ✓c
- ✓c
- ✓o
- ✓u
- ✓n
- ✓t
- ✓
- ✓w
- ✓i
- ✓t
- ✓h
- ✓
- ✓a
- ✓c
- ✓t
- ✓i
- ✓v
- ✓e
- ✓
- ✓p
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓p
- ✓l
- ✓a
- ✓n
- ✓"
- ✓,
- ✓
- ✓"
- ✓B
- ✓a
- ✓s
- ✓i
- ✓c
- ✓
- ✓f
- ✓a
- ✓m
- ✓i
- ✓l
- ✓i
- ✓a
- ✓r
- ✓i
- ✓t
- ✓y
- ✓
- ✓w
- ✓i
- ✓t
- ✓h
- ✓
- ✓S
- ✓c
- ✓r
- ✓a
- ✓p
- ✓y
- ✓
- ✓s
- ✓p
- ✓i
- ✓d
- ✓e
- ✓r
- ✓s
- ✓
- ✓a
- ✓n
- ✓d
- ✓
- ✓s
- ✓e
- ✓t
- ✓t
- ✓i
- ✓n
- ✓g
- ✓s
- ✓"
- ✓]
Step-by-Step Setup
[
{
"
T
I
T
L
E
"
:
"
I
N
S
T
A
L
L
S
C
R
A
P
Y
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
I
N
S
T
A
L
L
S
C
R
A
P
Y
A
N
D
C
R
E
A
T
E
A
N
E
W
P
R
O
J
E
C
T
"
,
"
C
O
D
E
"
:
"
P
I
P
I
N
S
T
A
L
L
S
C
R
A
P
Y
\
N
S
C
R
A
P
Y
S
T
A
R
T
P
R
O
J
E
C
T
M
Y
P
R
O
J
E
C
T
\
N
C
D
M
Y
P
R
O
J
E
C
T
"
}
,
{
"
T
I
T
L
E
"
:
"
C
O
N
F
I
G
U
R
E
P
R
O
X
Y
I
N
S
E
T
T
I
N
G
S
.
P
Y
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
A
D
D
P
R
O
X
Y
S
E
T
T
I
N
G
S
T
O
Y
O
U
R
P
R
O
J
E
C
T
'
S
S
E
T
T
I
N
G
S
.
P
Y
"
,
"
C
O
D
E
"
:
"
#
S
E
T
T
I
N
G
S
.
P
Y
\
N
H
T
T
P
P
R
O
X
Y
_
E
N
A
B
L
E
D
=
T
R
U
E
\
N
D
O
W
N
L
O
A
D
E
R
_
M
I
D
D
L
E
W
A
R
E
S
=
{
\
N
'
M
Y
P
R
O
J
E
C
T
.
M
I
D
D
L
E
W
A
R
E
S
.
G
P
R
O
X
Y
M
I
D
D
L
E
W
A
R
E
'
:
3
5
0
,
\
N
'
S
C
R
A
P
Y
.
D
O
W
N
L
O
A
D
E
R
M
I
D
D
L
E
W
A
R
E
S
.
H
T
T
P
P
R
O
X
Y
.
H
T
T
P
P
R
O
X
Y
M
I
D
D
L
E
W
A
R
E
'
:
4
0
0
,
\
N
}
"
}
,
{
"
T
I
T
L
E
"
:
"
C
R
E
A
T
E
P
R
O
X
Y
M
I
D
D
L
E
W
A
R
E
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
C
R
E
A
T
E
A
C
U
S
T
O
M
M
I
D
D
L
E
W
A
R
E
I
N
M
I
D
D
L
E
W
A
R
E
S
.
P
Y
"
,
"
C
O
D
E
"
:
"
C
L
A
S
S
G
P
R
O
X
Y
M
I
D
D
L
E
W
A
R
E
:
\
N
D
E
F
P
R
O
C
E
S
S
_
R
E
Q
U
E
S
T
(
S
E
L
F
,
R
E
Q
U
E
S
T
,
S
P
I
D
E
R
)
:
\
N
P
R
O
X
Y
=
'
H
T
T
P
:
/
/
U
S
E
R
:
P
A
S
S
@
P
R
O
X
Y
.
G
P
R
O
X
Y
.
N
E
T
:
1
0
0
0
'
\
N
R
E
Q
U
E
S
T
.
M
E
T
A
[
'
P
R
O
X
Y
'
]
=
P
R
O
X
Y
"
}
,
{
"
T
I
T
L
E
"
:
"
A
D
D
R
O
T
A
T
I
O
N
S
U
P
P
O
R
T
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
F
O
R
A
U
T
O
M
A
T
I
C
I
P
R
O
T
A
T
I
O
N
,
U
S
E
T
H
E
B
A
C
K
C
O
N
N
E
C
T
E
N
D
P
O
I
N
T
"
,
"
C
O
D
E
"
:
"
C
L
A
S
S
G
P
R
O
X
Y
R
O
T
A
T
I
N
G
M
I
D
D
L
E
W
A
R
E
:
\
N
D
E
F
P
R
O
C
E
S
S
_
R
E
Q
U
E
S
T
(
S
E
L
F
,
R
E
Q
U
E
S
T
,
S
P
I
D
E
R
)
:
\
N
R
E
Q
U
E
S
T
.
M
E
T
A
[
'
P
R
O
X
Y
'
]
=
'
H
T
T
P
:
/
/
U
S
E
R
-
C
O
U
N
T
R
Y
-
U
S
:
P
A
S
S
@
P
R
O
X
Y
.
G
P
R
O
X
Y
.
N
E
T
:
1
0
0
0
'
\
N
\
N
D
E
F
P
R
O
C
E
S
S
_
E
X
C
E
P
T
I
O
N
(
S
E
L
F
,
R
E
Q
U
E
S
T
,
E
X
C
E
P
T
I
O
N
,
S
P
I
D
E
R
)
:
\
N
R
E
T
U
R
N
R
E
Q
U
E
S
T
#
R
E
T
R
Y
W
I
T
H
N
E
W
I
P
"
}
,
{
"
T
I
T
L
E
"
:
"
C
O
N
F
I
G
U
R
E
R
E
T
R
Y
S
E
T
T
I
N
G
S
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
A
D
D
R
E
T
R
Y
C
O
N
F
I
G
U
R
A
T
I
O
N
F
O
R
R
E
L
I
A
B
I
L
I
T
Y
"
,
"
C
O
D
E
"
:
"
#
S
E
T
T
I
N
G
S
.
P
Y
\
N
R
E
T
R
Y
_
E
N
A
B
L
E
D
=
T
R
U
E
\
N
R
E
T
R
Y
_
T
I
M
E
S
=
5
\
N
R
E
T
R
Y
_
H
T
T
P
_
C
O
D
E
S
=
[
4
0
3
,
4
0
7
,
4
2
9
,
5
0
0
,
5
0
2
,
5
0
3
]
\
N
D
O
W
N
L
O
A
D
_
T
I
M
E
O
U
T
=
3
0
"
}
,
{
"
T
I
T
L
E
"
:
"
R
U
N
Y
O
U
R
S
P
I
D
E
R
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
T
E
S
T
T
H
E
P
R
O
X
Y
C
O
N
F
I
G
U
R
A
T
I
O
N
"
,
"
C
O
D
E
"
:
"
S
C
R
A
P
Y
C
R
A
W
L
M
Y
S
P
I
D
E
R
-
O
O
U
T
P
U
T
.
J
S
O
N
"
}
]
Code Examples
Why Use Proxies with Scrapy?
Scrapy is the most popular Python web scraping framework, powering millions of crawl jobs daily. When scraping at scale, you'll inevitably face IP blocks, CAPTCHAs, and rate limits. GProxy's residential proxy pool of 10M+ IPs across 150+ countries solves these challenges by rotating your exit IP automatically.
Proxy Authentication Methods
GProxy supports two authentication methods with Scrapy: username/password authentication through the proxy URL, and IP whitelist authentication where you add your server's IP to the GProxy dashboard. Both work seamlessly with Scrapy's built-in proxy support.
Basic Proxy Configuration
The simplest way to add GProxy proxies to Scrapy is through the settings.py file. Set the HTTP_PROXY and HTTPS_PROXY environment variables, or configure them directly in your spider's custom settings. For rotating proxies, you'll want to use a custom downloader middleware that assigns a new proxy URL per request.
Custom Proxy Rotation Middleware
For production scraping, a custom middleware gives you full control over proxy assignment. The middleware intercepts each request before it's sent, assigns a proxy endpoint with rotation parameters, and handles proxy-related errors like timeouts or 407 authentication failures. GProxy's backconnect endpoint handles rotation server-side, so each connection through the same endpoint gets a different IP.
Handling Errors and Retries
Robust scraping requires proper error handling. Configure Scrapy's retry middleware to work with your proxy setup: retry on 403, 407, 429, and 503 status codes, and set a reasonable retry count (3-5 attempts). GProxy's sticky sessions let you maintain the same IP across retries when needed — useful for multi-page flows.
Concurrent Requests and Performance
Scrapy excels at concurrent scraping, and GProxy's infrastructure handles high concurrency well. Start with CONCURRENT_REQUESTS = 32 and DOWNLOAD_DELAY = 0.5, then adjust based on target site behavior. With GProxy residential proxies, you can typically run 50-100 concurrent requests without issues.
Geo-Targeting with Scrapy
GProxy supports country and city-level targeting. Pass the target country as part of your proxy credentials (e.g., user-country-us) to route requests through IPs in that location. This is essential for scraping geo-restricted content or localized search results.
Use Cases
[
{
"
T
I
T
L
E
"
:
"
E
-
C
O
M
M
E
R
C
E
P
R
I
C
E
M
O
N
I
T
O
R
I
N
G
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
S
C
R
A
P
E
P
R
O
D
U
C
T
P
R
I
C
E
S
A
C
R
O
S
S
M
U
L
T
I
P
L
E
R
E
T
A
I
L
E
R
S
W
I
T
H
G
E
O
-
T
A
R
G
E
T
E
D
P
R
O
X
I
E
S
T
O
S
E
E
L
O
C
A
L
I
Z
E
D
P
R
I
C
I
N
G
.
"
}
,
{
"
T
I
T
L
E
"
:
"
S
E
R
P
T
R
A
C
K
I
N
G
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
M
O
N
I
T
O
R
S
E
A
R
C
H
E
N
G
I
N
E
R
A
N
K
I
N
G
S
F
R
O
M
D
I
F
F
E
R
E
N
T
L
O
C
A
T
I
O
N
S
U
S
I
N
G
C
O
U
N
T
R
Y
-
S
P
E
C
I
F
I
C
R
E
S
I
D
E
N
T
I
A
L
I
P
S
.
"
}
,
{
"
T
I
T
L
E
"
:
"
L
E
A
D
G
E
N
E
R
A
T
I
O
N
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
E
X
T
R
A
C
T
B
U
S
I
N
E
S
S
L
I
S
T
I
N
G
S
A
N
D
C
O
N
T
A
C
T
D
A
T
A
A
T
S
C
A
L
E
W
I
T
H
R
O
T
A
T
I
N
G
I
P
S
T
O
A
V
O
I
D
D
E
T
E
C
T
I
O
N
.
"
}
,
{
"
T
I
T
L
E
"
:
"
C
O
N
T
E
N
T
A
G
G
R
E
G
A
T
I
O
N
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
C
O
L
L
E
C
T
A
R
T
I
C
L
E
S
,
R
E
V
I
E
W
S
,
A
N
D
L
I
S
T
I
N
G
S
F
R
O
M
M
U
L
T
I
P
L
E
S
O
U
R
C
E
S
W
I
T
H
R
E
L
I
A
B
L
E
P
R
O
X
Y
R
O
T
A
T
I
O
N
.
"
}
]
FAQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Ready to Get Started?
Start with GProxy in minutes — residential proxies from $0.85/GB, IPv6 from $0.03/proxy, pay as you go.
