Browse Source

新增了基于Python3.7的Dockerfile

pull/496/head
liubo 5 years ago committed by wenxianping
parent
commit
7ff3ac6d13
  1. 53
      Dockerfile37
  2. 3
      TickerConfig.py
  3. 10
      config/getCookie.py

53
Dockerfile37

@ -0,0 +1,53 @@
FROM python:3.7
ARG CDV=77.0.3865.40
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib' > /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' >> /etc/apt/sources.list
RUN apt-get -y update
ADD . /usr/src/app
WORKDIR /usr/src/app
RUN wget -c https://dl.lancdn.com/landian/soft/chrome/m/77.0.3865.120_amd64.deb && \
apt-get install -y adwaita-icon-theme at-spi2-core dbus dconf-gsettings-backend dconf-service fonts-liberation glib-networking glib-networking-common glib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libcolord2 libcups2 libdbus-1-3 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdconf1 libdrm2 libfile-basedir-perl libfile-desktopentry-perl libfile-mimeinfo-perl libfontenc1 libgl1-mesa-glx libglapi-mesa libgnutls-deb0-28 libgtk-3-0 libgtk-3-bin libgtk-3-common libhogweed2 libindicator3-7 libjson-glib-1.0-0 libjson-glib-1.0-common libnettle4 libnspr4 libnss3 libproxy1 librest-0.7-0 libsoup-gnome2.4-1 libsoup2.4-1 libwayland-client0 libwayland-cursor0 libx11-protocol-perl libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxmu6 libxmuu1 libxpm4 libxrandr2 libxshmfence1 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 multiarch-support x11-utils x11-xserver-utils xdg-utils xkb-data libgconf2-4 lsb-release && \
dpkg -i 77.0.3865.120_amd64.deb && \
wget -c http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE
RUN wget -c https://npm.taobao.org/mirrors/chromedriver/$CDV/chromedriver_linux64.zip && \
apt-get install -y unzip && \
unzip chromedriver_linux64.zip
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider --no-cache-dir -r requirements.txt
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV DEBIAN_FRONTEND noninteractive
ENV TZ Asia/Shanghai
## install python requirements
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider --no-cache-dir -r requirements.txt
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
## install ntpdate, not accept but saving code
#RUN echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib \
# deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib \
# deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' > /etc/apt/sources.list \
# && apt-get update\
# && apt-get install ntpdate -y \
#EXPOSE 5010
CMD [ "python", "run.py" ]
#ENTRYPOINT [ "python", "run.py" ]

3
TickerConfig.py

@ -121,6 +121,9 @@ COOKIE_TYPE = 1
# chromedriver配置版本只要和chrome的大版本匹配就行
CHROME_PATH = "/Users/wenxianping/Downloads/chromedriver"
#为了docker37 准备的环境变量,windows环境可以不用管这个参数
CHROME_CHROME_PATH = "/usr/src/app/google-chrome";
# 如果COOKIE_TYPE=3, 则需配置RAIL_EXPIRATION、RAIL_DEVICEID的值
RAIL_EXPIRATION = ""
RAIL_DEVICEID = ""

10
config/getCookie.py

@ -2,6 +2,7 @@ import json
import random
import re
import time
import os
import TickerConfig
from config.urlConf import urls
@ -14,7 +15,14 @@ def getDrvicesID(session):
if TickerConfig.COOKIE_TYPE is 1:
from selenium import webdriver
cookies = []
driver = webdriver.Chrome(executable_path=TickerConfig.CHROME_PATH)
# 解决放镜像里 DevToolsActivePort file doesn't exist的问题
options = webdriver.ChromeOptions()
if os.name != 'nt' and TickerConfig.CHROME_CHROME_PATH:
options = webdriver.ChromeOptions()
options.binary_location = TickerConfig.CHROME_CHROME_PATH
options.add_argument("--no-sandbox")
options.add_argument("--headless")
driver = webdriver.Chrome(executable_path=TickerConfig.CHROME_PATH,chrome_options=options)
driver.get("https://www.12306.cn/index/index.html")
time.sleep(10)
for c in driver.get_cookies():

Loading…
Cancel
Save