失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > scrapy框架_Python:Scrapy框架

scrapy框架_Python:Scrapy框架

时间:2022-06-05 19:58:49

相关推荐

scrapy框架_Python:Scrapy框架

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

Scrapy的安装 && 部署

爬虫案例库

Body

安装

1、windows安装

安装 Twisted 模块

下载地址:

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

根据python版本下载对应版

笔者为python3.6

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

然后在对应的 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

~$sudopip3installscrapy

3、CentOS 安装

前提是已经安装好python3与 pip

~$sudo pip3 install scrapy

部署

创建Scrapy项目

scrapy startproject Democd Demoscrapygenspidercb 'cloudbyte.club'

项目目录结构如图:

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) mit() 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

案例库

/huangsv/pythonSpider

如果觉得《scrapy框架_Python:Scrapy框架》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。