python-scrapy框架

 

依赖包Twisted安装:

scrapy依赖一些包,主要是twisted模块

win10:

1、pip install wheel

2、在python的非官方依赖包网站下载twisted模块文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/

下载对应自己操作系统版本的twisted的whl文件,将文件放到wheel文件夹下,然后cmd窗口进入该文件夹下面执行命令:pip3 install 下载文件名称+后缀名,

注意,一定要加后缀名,这样,在自己的python环境中就安装了twisted模块

3、下载scrapy模块

4、将scrapy添加到环境变量,和django的admin相似操作

5、在cmd窗口下,进入指定目录执行命令创建项目:scrapy startproject tutorial

6、如果运行的时候提示缺少pywin32模块,可以在这个网站:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/

下载对应版本的pywin32软件,点击安装就行

centos7:

(如果python环境下出现sqlite3模块导入问题的话)要下载sqlite-devel包:yum -y install sqlite-devel,然后进入python3解压的源文件目录按照另一篇博客提到的python3安装执行./config和make&make install重新编译python

1、源码下载twisted,https://twistedmatrix.com/trac/wiki/Downloads

2、解压,进入解压目录,执行python setup.py install

3、运行python导入twisted模块时会提示没有找到模块:ModuleNotFoundError: No module named 'incremental'

这时候可以pip3下载incremental模块,然后再在python环境导入twisted就不会有问题

4、下载scrapy模块

 5、将scrapy添加到环境变量:ln -s /usr/local/python3/bin/scrapy /usr/bin/scrapy

6、在终端窗口自己项目目录下执行命令创建scrapy工程:scrapy startproject tutorial

scrapy项目创建

在cmd或者linux命令行下执行命令:scrapy starproject 项目名

进入项目目录,执行:scrapy genspider app  app.com

其中app可以自己命名,

这样就创建了项目

centos7下scrapyd和win10下scrapyd-client的安装:

多台服务器才能叫部署,个人主机只能叫安装!

win环境安装scrapy-client:最好是源码安装,在github上查找scrapy-client下载,解压缩,进入解压缩的目录执行python setup.py install进行安装,(pip3 install scrapy-client,有坑)

centos7安装scrapyd:pip3 install scrapyd

提示为连接到系统环境路径:

  • Installing collected packages: scrapyd
  • The script scrapyd is installed in '/usr/local/python3/bin' which is not on PATH.
  • Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  • Successfully installed scrapyd-1.2.0

可以做一个scrapyd的软件界,类似于pip3的软连接

修改default-scrapd.conf默认配置文件,将其中bind的地址修改为0.0.0.0(不知道配置文件路径的,可以find / -name default-scrapd.conf)

服务器防火墙开启6800端口(scrapyd运行的默认端口为6800):iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 6800 -j ACCEPT

service iptables save
# 保存当前的防火墙策略

service iptables restart
# 重启iptables

运行scrapyd启动命令:scrapyd

注意:一般只能在局域网内浏览器远程操作服务器的scrapyd的web窗口,要想公网访问,最好申请域名地址

有 N 台云主机,就可以通过 Scrapy-Redis 构建分布式爬虫

运行爬虫程序注意事项:

在cmd窗口执行scrapy crawl spidername 的时候,如果没有出现任何内容,请将settings配置文件的 ROBOTSTXT_OBEY  改为False,

注意,这会触犯爬虫法律行为,因为有些网站不允许爬虫进入,如果遇到rotbot.text为forbidden的话,最好还是小心点,还是为True好点

 

win10上传爬虫项目到centos7服务器操作:

参考网址:https://www.cnblogs.com/yijian001/p/9051124.html(内含Nginx下的配置信息)

上传到服务器之后,可以在客户端或者服务端执行命令:curl http://localhost(或者服务器ip):6800/schedule.json -d project=项目名 -d spider=爬虫名

要查看运行状态或者运行日志,可以在浏览器打开:http://localhost(或者服务器ip):6800

在里面可以查看爬虫的状态和日志记录。

scrapy项目运行和参考文献请参考:

http://www.cnblogs.com/wupeiqi/articles/6229292.html

https://docs.scrapy.org/en/latest/

逆风的方向最适合飞翔,我不怕千万人阻挡,只怕自己投降。
原文地址:https://www.cnblogs.com/daemon-czk/p/10004440.html