在ubuntu上部署Scrapy项目遇到的问题及解决方法

ubuntu版本18.04

查看版本的命令如下

cat /proc/version

python使用版本 ubuntu18.04自带的python3.6版本

位于目录 /usr/local/lib/python3.6

安装JDK环境,可参照博客

https://blog.csdn.net/lylg_ban/article/details/109676369?spm=1001.2014.3001.5501

安装Pycharm编译环境,在网页搜索,下载****.tar.gz,解压即可

找到安装pycharm安装目录,

右击打开终端,执行命令./pycharm.sh打开Pycharm编译环境

./pycharm.sh

新建一个项目测试环境是否可用:

刚开始建立项目就遇到一个问题,ModuleNotFoundError: No module named ‘distutils.util‘

参考博客

https://blog.csdn.net/lylg_ban/article/details/117927571?spm=1001.2014.3001.5501

可解决此问题。

第一个项目成功创建,然后安装scrapy环境

pip install scrapy

创建一个scrapy项目

scrapy startproject code

创建一个spider文件

scrapy genspider baidu www.biadu.com

新建一个执行文件main.py

from scrapy import cmdline

cmdline.execute('scrapy crawl baidu')

由于用到了数据库相关操作

所以报了如下错误

解决办法:

sudo apt-get install unixodbc unixodbc-dev

解决办法:安装ODBC

bay@sdbserver2:~$ sudo su
root@sdbserver2:/home/bay# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
root@sdbserver2:/home/bay# exit
bay@sdbserver2:~$ sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
bay@sdbserver2:~$ sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
bay@sdbserver2:~$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
bay@sdbserver2:~$ source ~/.bashrc
bay@sdbserver2:~$ sudo apt-get install -y unixodbc-dev

安装完成之后,执行scrapy文件不在报错

当有多个spider文件,并行爬取时,使用多进程又会报错

首先建立软连接

sudo ln -s /usr/local/lib/Python3.6/scrapy /usr/bin/scrapy

并修改main.py,添加app_path也就是spider文件的实际路径,在windows中,不加此路径也能识别,至此,scrapy项目已能成功运行

  app_path = os.path.dirname(os.path.realpath('/home/bay/workspace/code/code/spiders/baidu.py'))
  subprocess.Popen("scrapy crawl baidu", shell=True, cwd=app_path)
  print("I'm working for job1")

成功运行截图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lylg_ban

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值