命令行中建立scrapy工程:

scrapy startproject [工程名]

爬虫文件:
    在spider目录下新建一个python文件并写入以下内容

import scrapyclass BokeSpider(scrapy.Spider):name = 'blog'start_urls = ['https://blog.csdn.net/zimoxuan_']def parse(self, response):# print(response)titles = response.xpath(".//div[@class='article-item-box csdn-tracking-statistics']/h4/a/text()").extract()reads = response.xpath(".//div[@class='info-box d-flex align-content-center']/p[2]/span/text()").extract()print('***********************************************************************', len(reads))for i, j in zip(titles, reads):print(i, j)

name:爬虫名字

start_urls:爬虫启动后自动爬取的链接列表

pycharm命令行:

爬虫的个数:scrapy list

启动爬虫:scrapy crawl [name]

存入sqlite3数据库(1):

ipthon 中建立数据库

ipython
import sqlite3
Blog = sqlite3.connect('blog.sqlite')
cre_tab = 'create table blog (title varchar(512), reads varchar(128))'
Blog.execute(cre_tab)
exit

Item

class BokeItem(scrapy.Item):# define the fields for your item here like:title = scrapy.Field()reads = scrapy.Field()# pass

pipelines:

class BokePipeline(object):def process_item(self, item, spider):# print('******************************************************************')print(spider.name)return item

setting 中找到 ITEM_PIPELINES :

ITEM_PIPELINES = {'boke.pipelines.BokePipeline': 300,
}

blog.py

import scrapy
from ..items import BokeItemclass BokeSpider(scrapy.Spider):name = 'blog'start_urls = ['https://blog.csdn.net/zimoxuan_']def parse(self, response):# print(response)bl=BokeItem()titles = response.xpath(".//div[@class='article-item-box csdn-tracking-statistics']/h4/a/text()").extract()reads = response.xpath(".//div[@class='info-box d-flex align-content-center']/p[2]/span/text()").extract()# print('***********************************************************************', len(reads))for i, j in zip(titles, reads):bl['title'] = ibl['reads'] = jyield bl# print(i, j)

运行(测试):

******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:4', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:7', 'title': '\n        --django--      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:29', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:20', 'title': '\n        --scrapy爬虫--      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:24', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:22','title': '\n        CF-Round #493 (Div. 1)-A. Convert to Ones      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:39', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:21','title': '\n        CF-Round #494 (Div. 3)-C.Intense Heat      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:14', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:14', 'title': '\n        Html5--网页      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:14', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:17', 'title': '\n        VC++ 简单计算器      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:41', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:44', 'title': '\n        划分中文字符串,宽字符的插入      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:32', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:36', 'title': '\n        bzoj-4562:[Haoi2016]食物链      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:15', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:22', 'title': '\n        hdu-2795:Billboard      '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:10', 'title': '\n        '}
******************************************************************
blog
2018-08-06 14:24:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://blog.csdn.net/zimoxuan_>
{'reads': '阅读数:30', 'title': '\n        hdu:Minimum Inversion Number      '}

说明已经连通,可以进行下一步

存入sqlite3数据库(2):

这一步在管道文件(pipelines)中完成:

# -*- coding: utf-8 -*-
import sqlite3
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.htmlclass BokePipeline(object):def open_spider(self, spider):self.con = sqlite3.connect('blog.sqlite')self.cu = self.con.cursor()def process_item(self, item, spider):# print('******************************************************************')in_sql = "insert into blog (title,reads) values('{}','{}')".format(item['title'], item['reads'])print(in_sql)self.cu.execute(in_sql)self.con.commit()print(spider.name)return itemdef spider_close(self, spider):self.con.close()

#关于数据库打不开,点击没反应,有波浪线:解决办法  database 上方点击加号,点击data sourse 里的sqlite3 ,左下方的位置会有个黄色的感叹号,提示下载文件,下载后点击apply,即解决问题。

--scrapy爬虫--相关推荐

  1. python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...

  2. 手把手教你如何新建scrapy爬虫框架的第一个项目(下)

    前几天小编带大家学会了如何在Scrapy框架下创建属于自己的第一个爬虫项目(上),今天我们进一步深入的了解Scrapy爬虫项目创建,这里以伯乐在线网站的所有文章页为例进行说明. 在我们创建好Scrap ...

  3. scrapy爬虫框架初相识

    自己新建一个文件夹: 然后执行命令: scrapy startproject python123demo 查看里面的东西: D:\pythonscrapy>tree /f >.txt 卷 ...

  4. Python网络爬虫之scrapy爬虫的基本使用

    Scrapy爬虫的数据类型: 1. Request类:向网络上提交请求,跟requests库里的不是一个类型!2. Responce类:封装爬取内容3. ITEM:spider封装类 Responce ...

  5. Python之Scrapy爬虫的常用命令

    Scrapy爬虫的常用命令: Scrapy命令行是为持续运行设计的专业爬虫框架. 常用的Scrapy,命令有三个: startproject genspider crawl Scrapy为什么采用命令 ...

  6. Python网络爬虫之requests库Scrapy爬虫比较

    requests库Scrapy爬虫比较 相同点: 都可以进行页面请求和爬取,Python爬虫的两个重要技术路线 两者可用性都好,文档丰富,入门简单. 两者都没有处理JS,提交表单,应对验证码等功能(可 ...

  7. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  8. Scrapy爬虫及案例剖析

    来自:ytao 由于互联网的极速发展,所有现在的信息处于大量堆积的状态,我们既要向外界获取大量数据,又要在大量数据中过滤无用的数据.针对我们有益的数据需要我们进行指定抓取,从而出现了现在的爬虫技术,通 ...

  9. 同时运行多个scrapy爬虫的几种方法(自定义scrapy项目命令)

    试想一下,前面做的实验和例子都只有一个spider.然而,现实的开发的爬虫肯定不止一个.既然这样,那么就会有如下几个问题:1.在同一个项目中怎么创建多个爬虫的呢?2.多个爬虫的时候是怎么将他们运行起来 ...

  10. 基于python的scrapy爬虫抓取京东商品信息

    这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.p ...

最新文章

  1. 释放CPU,算力经济下DPU芯片的发展机遇
  2. com/alipay/config/AlipayConfig.java:[1,1] 非法字符: '\ufeff'
  3. Delphi 7.0常用函数速查手册
  4. linux core
  5. selenium 替代品_每个人都在谈论Selenium替代品-明智地选择!
  6. 吉首大学 问题 L: 小李子的老年生活
  7. C++ const常量和指针
  8. 第四周作业 简单地邮件发送实现
  9. c++字符串string操作全解
  10. 综述 | 注意力机制
  11. 多线程的概念原理过程
  12. linux硬盘只读脚本 zabbix,Zabbix如何设置脚本告警
  13. 逻辑斯蒂回归和感知机模型、支持向量机模型对比
  14. 基于jsp+mysql+Spring+SpringMVC+mybatis的房源信息管理系统
  15. ubuntu安装vmwaretools
  16. Vue 做调查问卷简单实例
  17. 使用搜索引擎时如何去除广告推荐
  18. appfuse上手(选取刘文涛blog)
  19. 重装系统要钱吗?电脑重装系统需要多少钱?
  20. curl 增加header_Curl发送header头信息

热门文章

  1. 照片像素化项目(on Github)
  2. 固态硬盘为什么比机械硬盘快
  3. html中p元素添加超链接_如何在HTML中添加超链接
  4. 机器视觉工业缺陷检测的那些事(四、常用算法与库)
  5. Java中将汉语转成拼音的方法
  6. [LeetCode] 300 最长递增子序列 及返回这一子序列
  7. 多类差异信息柔性融合概念与内涵
  8. html是什么排列规律,单数和双数是什么 有什么排列规律
  9. 微信小程序云端解决方案探索之路
  10. 微信 WCDB 正式开源——高效易用的移动数据库框架