• 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/

    逆风的方向最适合飞翔,我不怕千万人阻挡,只怕自己投降。
  • 相关阅读:
    session的生命周期
    临远的spring security教程
    spring security原理图及其解释
    解决eclipse中出现Resource is out of sync with the file system问题
    从SOA到BFV【普元的一份广告文章】
    普元OA平台介绍
    门户平台
    企业门户平台解决方案
    使用 CAS 在 Tomcat 中实现单点登录
    CAS 跨域原理
  • 原文地址:https://www.cnblogs.com/daemon-czk/p/10004440.html
Copyright © 2020-2023  润新知