Skip to main content

A module to wrap PProxy and allow more proxy options in Scrapy

Project description

ScrapyProxyCompat

Introduction

ScrapyProxyCompat is a Python module that wraps pproxy to allow a greater range of proxy types to be used with Scrapy. It supports any type of remote connection that is supported by pproxy. This module should be used with a rotating proxy middleware such as scrapy-rotating-proxy. The middleware that you write or choose to use must accept a file input made up of one proxy server per line if you would like to use the writeProxies(filePath) method. For example:

http://127.0.0.1:2000
http://127.0.0.1:2001
http://127.0.0.1:2002

Installation

To install ScrapyProxyCompat run pip install ScrapyProxyCompat

Usage

To begin using ScrapyProxyCompat, create an instance of the ScrapyProxyController class.

from ScrapyProxyCompat import ScrapyProxyController

# Usage: ScrapyProxyController(retry_time:float=300.0, retry_count: int=5, proxies:list=[], starting_port:int=2000)
# Where:
# retry_time is optional, the amount of time in seconds to wait before retrying a pproxy connection that has exited
# retry_count is optional, the number of times to retry establishing a pproxy connection before allowing the Thread to die
# proxies is an optional list of proxies following the normal PProxy syntax: [http, socks, ss, ssl, secure (Or a combination of these)]://ip_address:port#username:password
# starting_port is an optional valid port number to be used as the starting local port. You should expect it to use this port +1 for each proxy
controller = ScrapyProxyController(500.0, 10, ["http+ssl://proxyip.com:2323#Good:Creds"], 3000)

If you provided a proxy list when creating the ScrapyProxyController, you can now start your proxies.

controller.startProxies()

If you did not provide a proxy list when creating the ScrapyProxyController, you must read your proxies from a text file made up of one proxy server per line. This function may also be used to overwrite the passed proxies before the proxies have been started.

# Usage: ScrapyProxyController.readProxies(filePath)
# Where:
# filePath is the String path to the file you want to read
controller.readProxies("/path/to/remote/proxies/file.txt")

Once you have started your proxies, you can get a list of all proxy Threads with getProxies() or get a list of all local proxy addresses with getProxyAddresses(). You can also write the proxies to a file. Typically this will be a Scrapy proxy file.

# Usage: ScrapyProxyController.writeProxies(filePath)
# Where:
# filePath is the String path to the file you want to write
controller.writeProxies("/path/to/scrapy/proxies/file.txt")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ScrapyProxyCompat-0.1.3.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ScrapyProxyCompat-0.1.3-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file ScrapyProxyCompat-0.1.3.tar.gz.

File metadata

  • Download URL: ScrapyProxyCompat-0.1.3.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for ScrapyProxyCompat-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4a68ae2542978d9b606f5485db4e71c4e743e0080618b4846de19f8ef581dabe
MD5 ad54a06ff6c26f88f4e130015499ef44
BLAKE2b-256 f58914ba51286822a72de4dc843d07aa638b7bead423c9f0ee6f3d3dd25ad8e3

See more details on using hashes here.

File details

Details for the file ScrapyProxyCompat-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ScrapyProxyCompat-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for ScrapyProxyCompat-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 24d758447b88e12782b8d66bf582209f890921fdb11644a6e3765f73fa2234c2
MD5 1b3aa23b284ea165df2911ec2edf9a27
BLAKE2b-256 127dc414fc15afe8b9f8bb78478e1c0f00e690b07c0e44486eeea968bc6371e2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page