基于scrapy搭建爬虫项目

Scrapy

Scrapy 是一个基于 Twisted 实现的异步处理爬虫框架,该框架使用纯 Python 语言编写。Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等

  • scrapy-redis
    scrapy-redis是为了实现scrapy的分布式爬取而提供了一个python库,通过更换scrapy的内置组件,将爬取请求队列和item数据放入第三方的redis数据库中,由此可以有多个scrapy进程同时从redis中读取request数据和写入items数据,实现分布式处理【参考地址:http://c.biancheng.net/python_spider/scrapy.html】
    个人观点:在以往的爬取经历中,往往目标系统的并发能力都比较差或反爬能力比较强,如果基于scrapy-redis做分布式爬取往往都适得其反,而且scrapy-redis在爬取逻辑上比较固定,如果遇到有防爬的需要修改大量的代码策略,所以我都是基于Scrapy结合Senium采用同步的方式去增量爬取
  • scrapy工作流程
    在这里插入图片描述
  • 安装scrapy
因为scrapy依赖c++库所以会出现安装失败,如果安装失败则需要到指定网站下载失败的依赖https://www.lfd.uci.edu/~gohlke/pythonlibs/
# 先执行本地安装
pip install lxml-4.6.2-cp38-cp38-win_amd64.whl
pip install Twisted-20.3.0-cp38-cp38-win_amd64.whl
pip install pywin32-300-cp38-cp38-win_amd64.whl
pip install Scrapy-2.4.1-py3-none-any.whl
# 最后安装scrapy
pip install scrapy

创建scrapy项目

创建项目

scrapy startproject myFirstSpider

在这里插入图片描述
在这里插入图片描述

创建爬虫实例

scrapy genspider cnblogs news.cnblogs.com

在这里插入图片描述
在这里插入图片描述

集成Selenium

Selenium 是一个用于测试 Web 应用程序的自动化测试工具,它直接运行在浏览器中,实现了对浏览器的自动化操作,它支持所有主流的浏览器,包括 IE,Firefox,Safari,Chrome 等。https://npm.taobao.org/mirrors/chromedriver/ 下载与当前主机浏览器版本一致的内核

在这里插入图片描述

# 安装selenium
pip install selenium
# 防止通过selenium访问网站被识别
pip install undetected-chromedriver

集成布隆过滤器(redis服务需要安装插件)

官网:https://pypi.org/project/redisbloom/
文档:https://oss.redis.com/redisbloom/
pip install redis
pip install redisbloom

部署到linux

cd /usr/local && mkdir chrome && cd chrome
yum install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum -y localinstall google-chrome-stable_current_x86_64.rpm

在这里插入图片描述

  • 手动方式启动爬虫
cd D:\A_PYTHON\workspace\spider\gjdw
scrapy crawl zhaobiao
注意1:如果出现-bash: scrapy: 未找到命令,则需要创建软连接
ln -s /usr/local/python/python3/bin/scrapy /usr/local/bin/scrapy
注意2:easyprocess.EasyProcessError: start error <EasyProcess cmd_param=['Xvfb', '-help']
linux系统中安装xvfb软件yum install Xvfb
python环境中安装xvfbwrapper pip install xvfbwrapper
注意3:WebDriverException: Message: 'chromedriver' executable may have wrong permissions
chmod -R 777 chromedriver
注意4:WebDriverException: Message: Service ../chromedriver unexpectedly exited. Status code was: 127

在这里插入图片描述

yum install libnss3.so
  • 基于linux下corn自动启动爬虫
# 编写shell脚本
#!/bin/sh
cd /home/lixing/spider/gjdw && /usr/local/python/python3/bin/scrapy crawl zhaobiao
# 设置定时执行
systemctl restart crond # 重启crontab
systemctl reload crond # 刷新crontab配置文件
systemctl status crond # 查看crontab服务状态

在这里插入图片描述

crontab -l # 查看cron任务计划
crontab -r # 删除所有cron任务计划
crontab -e # 编辑cron任务计划
SHELL=/bin/bash
*/1 * * * * cd /home/lixing/spider/gjdw && ./zhaobiao_start.sh
# 查看日志
tail -f /var/log/cron
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大能嘚吧嘚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值