1.在服务器中安装chrome

1 sudo apt-get install libxss1 libappindicator1 libindicator7
2 wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
3 sudo dpkg -i google-chrome*.deb
4 sudo apt-get install -f

 

2.安装scrapy

  sudo apt-get install python3-scrapy

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  可能pip会熟悉一些,但是还是推荐使用这种方法。因为服务器可能并没有内置pip3,而pip是给python2安装的操作

3.一些非常麻烦的操作

  • 关于chrome not reachable的问题

  可能是在setting.py中关闭了cookie导致

  • 安装chromedriver

1 wget https://npm.taobao.org/mirrors/chromedriver/79.0.3945.36/chromedriver_linux64.zip
2 unzip chromedriver_linux64.zip
  • 给予chromedriver软连接

    ln -s chromedriver的目录 /usr/bin/chromedriver

    这一步更多是将chromedriver与系统建立联系,类似于windows的添加path(这一步我也不是很明白,如果有谁知道欢迎指正)

  • 不可用root打开的解决方法

    这里需要使用vim:# vim /usr/bin/google-chrome

    并进行如下操作:

1 将 exec -a "$0" "$HERE/chrome" "$@"  改为
2 exec -a "$0" "$HERE/chrome" "$@" --no-sandbox $HOME

4.设置无界面化的chrome

关于在linux上部署scrapy的爬虫 Python 第1张
1     def __init__(self, **kwargs):
2         super().__init__(**kwargs)
3         self.options = webdriver.ChromeOptions()
4         self.options.add_argument('--headless')
5         self.options.add_argument('--disable-gpu')
6         self.options.add_argument('--no-sandbox')
7         self.options.add_argument('blink-settings=imagesEnabled=false')
8         self.browser = webdriver.Chrome(chrome_options=self.options)
9         self.browser.set_page_load_timeout(30)
View Code

 

5.在后台执行的命令:

nohup python -u run.py > test.log 2>&1 &

ps -A 可以查看进程

kill -9 [进程编号]终止后台

6.使用后台执行运行scrapy

首先要新建一个run.py在spider目录里。

1 import os
2 
3 if __name__ == '__main__':
4     os.system("scrapy crawl passage")

运行的时候用nohup执行run.py

nohup python -u run.py > test.log 2>&1 &
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄