scrapy框架_Python:Scrapy框架

 Scrapy是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。尽管Scrapy原本是设计用来屏幕抓取(更精确的说,是网络抓取),但它也可以用来访问API来提取数据。

  • Scrapy的安装 && 部署

  • 爬虫案例库

Body

安装

1、windows 安装

    安装 Twisted 模块

    下载地址:

 https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

68fe90c760311ac7ef1c35da998fd618.png

根据python版本下载对应版

笔者为python3.6

c8b02bcb78159e54984a869b9277e887.png

下载完成后,放置一个爬虫的工作目录(笔者任意新建的)

然后在对应的 cmd 打开,(什么是cmd笔者不多说)

推荐建立一个虚拟环境(非必须,但推荐)

算了,后面的上视频

pip install ./T......(Tab键)pip install scrapypip install pywin32

windows部署就是这么简单

2、Ubuntu 安装

    前提是已经安装好python3 与 pip

    1、安装依赖(来自:官方文档)

~$sudo apt-get install python3 python3-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

    2、安装 Scrapy 

~$sudo pip3 install scrapy

3、CentOS 安装

    前提是已经安装好python3 与 pip

~$sudo pip3 install scrapy

部署

创建Scrapy项目

scrapy startproject Democd Demoscrapy genspider cb 'cloudbyte.club'

689486d4227c57b15100a154760e7bdc.png

项目目录结构如图:

  • cb.py  编写代码逻辑

  • items.py  预设数据变量(可不使用)

  • middlewares.py  爬虫中间件(一般用不着)

  • pipelines.py 数据处理的地方

  • settins.py 全局配置

** 此下为笔者记录(笔者自己需要)

  • settings.py

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36'ROBOTSTXT_OBEY = FalseLOG_LEVEL = 'WARNING'COOKIES_ENABLED = FalseDOWNLOAD_DELAY = 3ITEM_PIPELINES = {   'Demo.pipelines.DemoPipeline': 300,}

pipelines.py

import pymysql, timefrom pymongo import MongoClientclass DemoPipeline:    def open_spider(self, spider):        '''在爬虫开启的时候执行一次,仅执行一次'''        self.start = time.time()        # 连接数据库(地址,用户名,密码,名字)        self.db = pymysql.connect("localhost", "root", "root", "book", charset="utf8")        # 创建一个游标对象        self.cur = self.db.cursor()        # 连接 MongoDB        self.client = MongoClient(host="127.0.0.1", port=27017)        self.collection = self.client['']['']        print('MySQL 连接成功!')        print('MongonDB 连接成功!')        self.i = 0    def close_spider(self, spider):        '''在爬虫结束时执行一次'''        # 关闭游标        self.cur.close()        # 关闭数据库        self.db.close()        print('\n' + '爬取完成!' + '耗时:', time.time() - self.start)    def process_item(self, item, spider):        self.i += 1        data_list = [(), ]        data_dict = {}        try:            self.cur.executemany(                "INSERT INTO  () VALUES ()",                data_list)            self.db.commit()        except Exception as e:            self.db.rollback()            print("MySQL 数据保存失败!")            print(data_list)            print(e)        try:            self.collection.insert(data_dict)        except Exception as e:            print("MongoDB数据保存失败!")            print(data_dict)            print(e)        return item

案例库

https://github.com/huangsv/pythonSpider

8b3158bcea5120a0476d7d09a82f2f94.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值