/proxy_scrapy

proxy_scrapy是一个scrapy搭建的代理模块,主要包括代理抓取、代理测试和使用代理三个模块。包括了对主要的代理网站的抓取和代理稳定性的测试,并整合进scrapy爬虫当中。

Primary LanguagePython

proxy_scrapy


proxy_scrapy是一个scrapy搭建的代理模块,主要包括代理抓取、代理测试和使用代理三个模块。

依赖包


基于python2所写,依赖scrapy。

代理抓取


主要通过抓取一些代理网站(如:xicidaili.com等)抓获代理,启动命令。

scrapy crawl fetch_proxyip

抓取数据生成一个ip_proxy_utf8.json文件。文件格式为{"connect_type": "HTTP", "ip": "39.65.153.229", "port": "8888"}

代理测试


代理ip测试,主要用于测试ip是否可以正常访问,代理测试模块为test_proxy_ip.py,输出文件为valid_proxy.txt。

scrapy代理设置


scrapy代理设置,将测试通过的代理ip文件导入scrapy中,通过随机选取的方式抓取目标网站。 使用方法: 在settings下设置如下:

DOWNLOADER_MIDDLEWARES = {'common.downloadermiddleware.httpproxy.RandomProxyMiddleware':100} HTTPPROXY_FILE_PATH = u"/content/proxyip/data/valid_proxy.txt" RETRY_TIMES = 6 PROXY_USED_TIMES = 2 RETRY_HTTP_CODES = [500, 503, 504, 599, 403]

HTTPPROXY_FILE_PATH为ip代理文件路径,RETRY_TIMES为请求连接失败重试次数,PROXY_USED_TIMES proxy失败重试次数,RETRY_HTTP_CODES为重试返回码。HTTPPROXY_FILE_PATH为必填值。 运行python scrapy_test_api.py测试抓取百度百科。

HTTPPROXY_FILE_PATH文件格式为:请求协议://用户名:密码@ip地址:端口号 例如:http://proxy.example.com/ 或者http://joe:password@proxy.example.com/