--scrapy爬虫--
命令行中建立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爬虫--相关推荐
- python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目
首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...
- 手把手教你如何新建scrapy爬虫框架的第一个项目(下)
前几天小编带大家学会了如何在Scrapy框架下创建属于自己的第一个爬虫项目(上),今天我们进一步深入的了解Scrapy爬虫项目创建,这里以伯乐在线网站的所有文章页为例进行说明. 在我们创建好Scrap ...
- scrapy爬虫框架初相识
自己新建一个文件夹: 然后执行命令: scrapy startproject python123demo 查看里面的东西: D:\pythonscrapy>tree /f >.txt 卷 ...
- Python网络爬虫之scrapy爬虫的基本使用
Scrapy爬虫的数据类型: 1. Request类:向网络上提交请求,跟requests库里的不是一个类型!2. Responce类:封装爬取内容3. ITEM:spider封装类 Responce ...
- Python之Scrapy爬虫的常用命令
Scrapy爬虫的常用命令: Scrapy命令行是为持续运行设计的专业爬虫框架. 常用的Scrapy,命令有三个: startproject genspider crawl Scrapy为什么采用命令 ...
- Python网络爬虫之requests库Scrapy爬虫比较
requests库Scrapy爬虫比较 相同点: 都可以进行页面请求和爬取,Python爬虫的两个重要技术路线 两者可用性都好,文档丰富,入门简单. 两者都没有处理JS,提交表单,应对验证码等功能(可 ...
- Python Scrapy爬虫框架实战应用
通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...
- Scrapy爬虫及案例剖析
来自:ytao 由于互联网的极速发展,所有现在的信息处于大量堆积的状态,我们既要向外界获取大量数据,又要在大量数据中过滤无用的数据.针对我们有益的数据需要我们进行指定抓取,从而出现了现在的爬虫技术,通 ...
- 同时运行多个scrapy爬虫的几种方法(自定义scrapy项目命令)
试想一下,前面做的实验和例子都只有一个spider.然而,现实的开发的爬虫肯定不止一个.既然这样,那么就会有如下几个问题:1.在同一个项目中怎么创建多个爬虫的呢?2.多个爬虫的时候是怎么将他们运行起来 ...
- 基于python的scrapy爬虫抓取京东商品信息
这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.p ...
最新文章
- 释放CPU,算力经济下DPU芯片的发展机遇
- com/alipay/config/AlipayConfig.java:[1,1] 非法字符: '\ufeff'
- Delphi 7.0常用函数速查手册
- linux core
- selenium 替代品_每个人都在谈论Selenium替代品-明智地选择!
- 吉首大学 问题 L: 小李子的老年生活
- C++ const常量和指针
- 第四周作业 简单地邮件发送实现
- c++字符串string操作全解
- 综述 | 注意力机制
- 多线程的概念原理过程
- linux硬盘只读脚本 zabbix,Zabbix如何设置脚本告警
- 逻辑斯蒂回归和感知机模型、支持向量机模型对比
- 基于jsp+mysql+Spring+SpringMVC+mybatis的房源信息管理系统
- ubuntu安装vmwaretools
- Vue 做调查问卷简单实例
- 使用搜索引擎时如何去除广告推荐
- appfuse上手(选取刘文涛blog)
- 重装系统要钱吗?电脑重装系统需要多少钱?
- curl 增加header_Curl发送header头信息