关于在linux上部署scrapy的爬虫
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
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 &
更多精彩