關於在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-scrapypython

  可能pip會熟悉一些,可是仍是推薦使用這種方法。由於服務器可能並無內置pip3,而pip是給python2安裝的操做linux

3.一些很是麻煩的操做

  • 關於chrome not reachable的問題

  多是在setting.py中關閉了cookie致使web

  • 安裝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
chrome

    這一步更可能是將chromedriver與系統創建聯繫,相似於windows的添加path(這一步我也不是很明白,若是有誰知道歡迎指正)npm

  • 不可用root打開的解決方法

    這裏須要使用vim:# vim /usr/bin/google-chromevim

    並進行以下操做:windows

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.pycookie

nohup python -u run.py > test.log 2>&1 &
相關文章
相關標籤/搜索