程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

关于在linux上部署scrapy的爬虫

发布于2019-12-14 10:42     阅读(715)     评论(0)     点赞(29)     收藏(3)


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

  可能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 &


所属网站分类: 技术文章 > 博客

作者:短发越来越短

链接:https://www.pythonheidong.com/blog/article/176250/88b112309c13ffbb3e72/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)