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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python求两数之和的命令_数学建模:科学计算Python2小时-Python基础

这一部分主要面向数模活动中的python基础知识进行讨论作者系列文章(科学计算Python2小时)目录:李似:科学计算Python2小时-前言与目录​zhuanlan.zhihu.com首先要说明的是,目前常用的Python版本包括Python2和Python3,二者有一些语法…

空白世界地图打印版_洪恩识字卡1300字十字帖+绘本,可打印成册

洪恩识字卡电子版资源,共1300字,无拼音和升级版带拼音都有,可直接打印,可分享免费送我在app中无意洪恩识字这个宝藏app,识字是想着孩子能早日实现自由阅读,可是一直对着电子设备伤眼晴,于是找了…

操作系统实验读者写者程序源码_SAST Weekly | STM32F103系列开发板移植华为LiteOS操作系统...

SAST weekly 是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普、研究前沿热点介绍、科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注!欢迎愿意分享知识的同…

java 远程调试spark_spark开启远程调试

一.集群环境配置#调试Master,在master节点的spark-env.sh中添加SPARK_MASTER_OPTS变量export SPARK_MASTER_OPTS"-Xdebug -Xrunjdwp:transportdt_socket,servery,suspendy,address10000"#调试Worker,在worker节点的spark-env.sh中添加SPARK_WO…

web中间件_常见web中间件拿shell

1.weblogic后台页面:(http为7001,https为7002)Google关键字:WebLogic Server AdministrationConsole inurl:console默认的用户名密码1、用户名密码均为:weblogic2、用户名密码均为:system3、用户名密码均为&#xff1a…

java定义抽象类abarea_详解 抽象类

本人在这篇博文中要讲解的知识点,和本人之前的一篇博文有所关联。因为,“抽象类” 是按照 “自下而上” 的顺序来编写所需的类,而在本人之前的博文《详解 继承(上)—— 工具的抽象与分层》中讲到的 继承 则与之相反,按照 “自上而…

word表格图片自动适应表格大小_Excel应用实践20:使用Excel中的数据自动填写Word表格...

学习Excel技术,关注微信公众号:excelperfect我在Excel工作表中存放着数据,如下图1所示。图1我想将这些数据逐行自动输入到Word文档的表格中并分别自动保存,Word文档表格如下图2所示,文档名为“datafromexcel.docx”。图…

dnspod java_使用dnspod遭遇的奇特问题以及背后的原因与临时解决方法

由于园子里有不少用户在使用dnspod,我们觉得有必要将这两天blogjava.net域名在dsnpod遇到的奇特问题分享一下,以免再有人踩着这个坑。12月11日,我们登录到dnspod的后台时,大吃一惊,blogjava.net这个域名竟然消失了。联…

cad转dxf格式文件太大_想知道DWG、DWT、DWS和DXF是什么吗?从了解4种CAD图形格式开始吧...

原创:就说我在开发区常用图形文件格式盘点CAD中的图形文件格式共9种,其扩展名分别为:❶DWG – 图形或块文件❷DWT – 图形样板文件❸DWS – 图形标准文件❹DXF – 图形交换文件(ASCII 或二进制)❺DST – 图形集或图纸集文件(SHEETSET 命令)❻…

vue登录如何存储cookie_vue项目实现表单登录页保存账号和密码到cookie功能

实现功能:1.一周内自动登录勾选时,将账号和密码保存到cookie,下次登陆自动显示到表单内2.点击忘记密码则清空之前保存到cookie的值,下次登陆需要手动输入次要的就不说了直接上主要的代码html部分登陆帮助一周内自动登录忘记密码&a…

usb协议规范_USB连接标准接口简述发布

制程工艺材料类USB为Universal Series Bus (通用序列总线)的缩写,是一种串行通讯协议(sereal protocol),它负责实体层和链接层的建立。它可以支持慢速的数据传输(如鼠标、键盘、游戏摇杆等)也支持快速的数字压缩影音信息。普通的USB2.0版本以下有两对线,分别用来传输…

java urlencode php_PHP如何使用urlencode()函数进行url编码?(代码示例)

urlencode()函数是PHP中的一个内置函数,用于对url进行编码。下面本篇文章就来给大家介绍一些urlencode()函数的用法,让大家了解urlencode()函数是如何对url进行编码的,希望对大家有所帮助。【视频教程推荐:PHP教程】urlencode()函…

光电转换模块_光模块:PIN光电二极管和APD光电二极管

在前面的文章中我们介绍了光模块的基本结构,包括TOSA、ROSA以及BOSA。今天我们接着介绍ROSA光器件的光电探测器。光模块接收端能正确识别信号并完成光电转换,就需要光电探测器,光电探测器通过检测出照射在其上面的光功率,从而并完…

java如何添加自定义的图片_java代码将图片加上自定义水印 -4

java代码将图片加上自定义水印,然后生成了新的图片import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import javax.image…

vba 当前文件名_值得学习和珍藏的VBA常用编程代码语句

分享成果,随喜真能量。大家好,今天继续和大家分享VBA编程中常用的过程代码。过程代码在这里讲解的语句非常简单单一,简单的语句组合起来就是一个复杂的过程,我们要认真掌握这些简单的过程,为我们复杂的工程服务。这也是…

java上传csv错误信息_java处理csv文件上传示例详解

前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理。ReadCsvUtil工具类package com.hanfengyeqiao.gjb.utils;import java.io.*;import java.util.*;/*** csv工具类*/public cla…

暗金色 rgb_杜伽TAURUS K310樱桃RGB红轴体验:做工精良、手感优秀

前言DURGOD杜伽的机械键盘一直以简约的外形和优秀的手感而备受好评。笔者之前用过杜伽的K310、K320两个系列的多把键盘,对其非常熟悉,外形简约大方,手感、灯效也比较满意。正因如此,这次刚刚入手了一把杜伽K310 RGB樱桃红轴&#…

vim 显示行号_Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点

引言一般 Vim 使用 :set number 命令,在编辑器显示行号。本文展示了如何将行号插入到正文中,或者只插入到段落中。此外,还提供了打印行号的选项(Vim 可以打印带有数字的行,并且不需要文件有数字)。Vim可以使用 :s 命令在每行之前插…

java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...

Java中创建String 对象的方法有哪些发布时间:2020-11-25 16:45:30来源:亿速云阅读:71作者:Leah这篇文章将为大家详细讲解有关Java中创建String 对象的方法有哪些,文章内容质量较高,因此小编分享给大家做个参…

vb中怎么使图片适应框的大小_叮!VB考前练习了解一下?

1、Visual Basic窗体设计器的主要功能是(C )。A) 画图B) 编写源程序代码C) 建立用户界面D) 显示文字解析:Visual Basic窗体设计器简称窗体(Form),是应用程序最终面向用户的窗口,它对应于应用程序的运行结果。各种图形、图像、数据等都是…