2018 Scrapy Environment Enhance(4)Docker Service for Scrapyd and Tor Network
Docker Service for Scrapyd
http://sillycat.iteye.com/blog/2422861
Docker Service for Tor Network
There are 3 ports and 3 different function services.
Tor 9051 Port reset IP
Tor 9050 Port to proxy
Privoxy 8118 to proxy to 9050
I put them into one Docker App, but we should be able to split them into 2 apps.
Dockerfile
#Run a Tor Network Server
#Prepare the OS
FROM ubuntu:16.04
MAINTAINER Carl Luo <luohuazju@gmail.com>
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -qq update
RUN apt-get -qqy dist-upgrade
#Prepare the denpendencies
RUN apt-get install -qy tor
RUN apt-get install -qy netcat
RUN apt-get install -qy curl
RUN apt-get install -qy privoxy
#set up tor configuration
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN echo "ControlListenAddress 0.0.0.0" >> /etc/tor/torrc
RUN echo HashedControlPassword $(tor --hash-password “xxxxxxxx" | tail -n 1) >> /etc/tor/torrc
#set up forward configuration
RUN echo "forward-socks5t / 127.0.0.1:9050 .">> /etc/privoxy/config
RUN echo "listen-address 0.0.0.0:8118">> /etc/privoxy/config
#set up the app
EXPOSE 9051 8118
RUN mkdir -p /app/
ADD start.sh /app/
WORKDIR /app/
CMD [ "./start.sh" ]
The command line to start, start.sh
#!/bin/sh -ex
#start the service
service tor start
service privoxy start
tail -f /dev/null
Makefile to open the PORT number
IMAGE=sillycat/public
TAG=ubuntu-tornetwork-1.0
NAME=ubuntu-tornetwork-1.0
docker-context:
build: docker-context
docker build -t $(IMAGE):$(TAG) .
run:
docker run -d -p 9051:9051 -p 8118:8118 --name $(NAME) $(IMAGE):$(TAG)
debug:
docker run -p 9051:9051 -p 8118:8118 --name $(NAME) -ti $(IMAGE):$(TAG) /bin/bash
clean:
docker stop ${NAME}
docker rm ${NAME}
logs:
docker logs ${NAME}
publish:
docker push ${IMAGE}
How to change the IP
> echo -e 'AUTHENTICATE “xxxxxxxxx"\r\nsignal NEWNYM\r\nQUIT' | nc localhost 9051
Check the IP
> curl -x localhost:8118 http://icanhazip.com/
How to change the IP from remote
> echo -e 'AUTHENTICATE “xxxxxxxxx"\r\nsignal NEWNYM\r\nQUIT' | nc ubuntu-master 9051
Check the IP from Remote
> curl -x ubuntu-master:8118 http://icanhazip.com/
References:
http://sillycat.iteye.com/blog/2418229
http://sillycat.iteye.com/blog/2418353
http://sillycat.iteye.com/blog/2422861
https://github.com/torproject/tor/blob/master/src/config/torrc.sample.in
https://github.com/osminogin/docker-tor-simple
https://github.com/dperson/torproxy
https://program-think.blogspot.com/2014/12/gfw-privoxy.html
http://www.cnblogs.com/another-wheel/archive/2011/11/16/setup-http-proxy-via-socks-and-privoxy.html
https://blog.phpgao.com/privoxy-shadowsocks.html
https://blog.csdn.net/north_eagle/article/details/8683403
https://stackoverflow.com/questions/15459170/trouble-authenticating-tor-with-python
https://gist.github.com/DusanMadar/c1155329cf6a71e4346cae271a2eafd3
https://www.torproject.org/docs/faq.html.en
https://stackoverflow.com/questions/45901892/how-to-connect-to-tor-control-port-9051-from-a-remote-host
https://stackoverflow.com/questions/25775266/how-to-keep-docker-container-running-after-starting-services/36872226
分享到:
相关推荐
Docker Scrapyd Scrapy Crawler - Mailan-Spider 应用程序 这个存储库是一个可以“Dockerized”的蜘蛛 Python 应用程序。 它附带了在 Mac OS X 中“Dockerizing”Python 应用程序的分步指南。您将了解 Scrapy、...
scrapy 项目部署 Scrapy 是一个流行的 Python 爬虫框架,它提供了强大的爬虫功能。但是,Scrapy 项目的部署一直是一个让开发者头疼的问题。Scrapy 项目的部署需要考虑到多个方面,如项目的管理、版本控制、爬虫的...
4. **Django与Scrapyd接口**:在Django项目中,使用`requests`库或者`scrapy/scrapyd-client`来与Scrapyd API通信。编写函数来调度Scrapy爬虫,获取爬虫运行结果。 5. **用户界面**:设计用户友好的前端界面,用户...
docker toolbox for windows 用于在windows上安装docker
标题"spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项-spider-admin-pro.zip"表明这是一个基于Scrapy和Scrapyd的爬虫项目管理平台,名为"spider-admin-pro"。它已经被打包成.zip文件供用户下载和使用。这个平台...
我创建这个存储库是为了快速开始使用scrapy 和scrapyd。 我已经包含了一个 Dockerfile 来构建一个容器,其中包含运行 scrapyd 实例所需的一切。 还包括教程蜘蛛作为如何部署蜘蛛的示例,作为额外的奖励,我创建了一...
基于scrapy1.5.1+es6+docker对知乎的搜索引擎
实现 Scrapyd 服务器集群监控和交互,Scrapy 日志分析和可视化.zip,Web app for Scrapyd cluster management, Scrapy log analysis & visualization, Auto packaging, Timer tasks, Monitor & Alert, and Mobile UI....
**SpiderAdmin:Scrapy与Scrapyd的管理平台** SpiderAdmin是一个基于Web的管理平台,专为Scrapy和Scrapyd设计,旨在提供一个统一的界面来管理和监控爬虫项目和任务。它使得开发者和运营者能够更加方便地对爬虫进行...
刮刮乐 使用 tor 运行 scrapy 应用程序的基本 docker 映像。 构建基础镜像 要创建基本映像ptherrode/scrapy-and-tor ,请在 scrapy-and-tor 文件夹上执行以下命令: docker build -t ptherrode/scrapy-and-tor .
4. **Scrapyd的使用**:Scrapyd是一个Scrapy的分布式爬虫调度器,它可以部署、管理、监控和调度多个Scrapy项目。在Django中集成Scrapyd,可以通过其提供的API接口来启动、停止爬虫,或者获取爬虫状态和日志。 5. **...
ScrapydWeb:用于Scrapyd集群管理的Web应用程序,支持Scrapy日志分析和可视化。 Scrapyd :cross_mark: ScrapydWeb :cross_mark: LogParser :open_book: 推荐读物 :eyes: 演示版 :star: 特征 查看内容 :...
京东爬虫 -- docker mongodb redis scrapy等技术实现
# define the fields for your item here like: # name = scrapy.Field() name = scrapy.Field() # 表示讲师姓名 level = scrapy.Field() # 表示讲师级别 resume = scrapy.Field() # 表示讲师履历 配置如下: #...
Paperback: 270 pages Publisher: Packt Publishing - ebooks Account (January 30, 2016) Language: English ISBN-10: 1784399787 ... Perform large scale distributed crawls with scrapyd and scrapinghub
主要介绍了Docker 部署Scrapy的详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Scrapy DockerHub 部署、运行和监控您的 Scrapy 蜘蛛。 它利用 Fabric 命令行实用程序来管理运行 Scrapy 蜘蛛的远程 Docker 容器 安装 要在你的scrapy项目中使用它,你只需要在你的项目目录中创建fabfile.py ,...
4. **项目部署**:用户可以上传Scrapy项目到Scrapyd服务器进行部署,简化了爬虫的发布流程。 5. **权限控制**:Django的内置认证系统可以实现用户注册、登录以及不同级别的权限控制。 6. **API接口**:Django后端...