Python之Scrapy爬虫框架 入门实例(一)
一、开发环境
1.安装 scrapy
2.安装 python2.7
3.安装编辑器 PyCharm
二、创建scrapy项目pachong
1.在命令行输入命令:scrapy startproject pachong
(pachong 为项目的名称,可以改变)

2.打开编辑器PyCharm,将刚刚创建的项目pachong导入。
(点击file—>选择open—>输入或选择E:\pachong—>点击ok)

三、创建scrapy爬虫文件pachong_spider.py
在pachong_spider.py这个文件夹中编写爬取网站数据的内容。
(右击文件spiders—>选择New,在选择PhthonFile—>输入文件名pachong_spider)

四、编写爬虫pachong
将 网址 http://lab.scrapyd.cn/ 博客中的所有博客标题和博客标签,以作者名-语录为名分别保存在各自作者对应的txt文件中。
1.查看http://lab.scrapyd.cn/源代码,获取自己所需的博客标题、作者、标签三个内容的对应HTML标签信息。

2.获取网址的内容,保存到变量pachong里。
(分析HTML结构,每一段需要提取的内容都被一个 <div class="quote post">……</div> 包裹。)

3.获取循环获取标题、作者的第一个内容,和对应标签的内容,并对标签的内容进行逗号分隔后,进行分类保存。

4.查看下一页的HTML标签,对下一页获取的内容进行循环。
(查看存在不存在下一页的链接,如果存在下一页,把下一页的内容提交给parse然后继续爬取。如果不存在下一页链接结束爬取。)


5.爬虫源代码。
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#Python 默认脚本文件都是 UTF-8 编码的,当脚本出现中文汉字时需要对其进行解码。
import scrapy
class itemSpider(scrapy.Spider):
# scrapy.Spider 是一个简单的爬虫类型。
# 它只是提供了一个默认start_requests()实现。
# 它从start_urlsspider属性发送请求,并parse 为每个结果响应调用spider的方法。
name ="pachong"
# 定义此爬虫名称的字符串。
# 它必须是唯一的。
start_urls = ['http://lab.scrapyd.cn']
#爬虫抓取自己需要的网址列表。
#该网站列表可以是多个。
def parse(self, response):
# 定义一个parse规则,用来爬取自己需要的网站信息。
pachong = response.css('div.quote')
# 用变量pachong来保存获取网站的部分内容。
for v in pachong:
text = v.css('.text::text').extract_first()
autor = v.css('.author::text').extract_first()
tags = v.css('.tags .tag::text').extract()
tags = ','.join(tags)
# 循环提取所有的标题、作者和标签内容。
fileName = u'%s-语录.txt' % autor
# 文件的名称为作者名字—语录.txt。
with open(fileName, "a+")as f:
f.write(u'标题:'+text)
f.write('\n')
f.write(u'标签:' + tags)
f.write('\n------------------------------------------------\n')
# 打开文件并写入标题和标签内容。
f.close()
# 关闭文件
next_page = response.css('li.next a::attr(href)').extract_first()
if next_page is not None:
next_page = response.urljoin(next_page)
yield scrapy.Request(next_page, callback=self.parse)
# 查看存在不存在下一页的链接,如果存在下一页,把下一页的内容提交给parse然后继续爬取。
# 如果不存在下一页链接结束爬取。
五、运行爬虫pachong
1.在命令行输入命令:scrapy crawl pachong
(在pachong的目录下输入命令)


2.打开e盘 pachong文件夹,已经按要求爬取网址 http://lab.scrapyd.cn/ 的内容。

Python之Scrapy爬虫框架 入门实例(一)的更多相关文章
- 【python】Scrapy爬虫框架入门
说明: 本文主要学习Scrapy框架入门,介绍如何使用Scrapy框架爬取页面信息. 项目案例:爬取腾讯招聘页面 https://hr.tencent.com/position.php?&st ...
- scrapy爬虫框架入门实例(一)
流程分析 抓取内容(百度贴吧:网络爬虫吧) 页面: http://tieba.baidu.com/f?kw=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&ie=ut ...
- Python之Scrapy爬虫框架安装及简单使用
题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...
- [Python] Scrapy爬虫框架入门
说明: 本文主要学习Scrapy框架入门,介绍如何使用Scrapy框架爬取页面信息. 项目案例:爬取腾讯招聘页面 https://hr.tencent.com/position.php?&st ...
- Scrapy 爬虫框架入门案例详解
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:崔庆才 Scrapy入门 本篇会通过介绍一个简单的项目,走一遍Scrapy抓取流程,通过这个过程,可以对 ...
- windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息
scrapy作为流行的python爬虫框架,简单易用,这里简单介绍如何使用该爬虫框架爬取个人博客信息.关于python的安装和scrapy的安装配置请读者自行查阅相关资料,或者也可以关注我后续的内容. ...
- scrapy爬虫框架入门教程
scrapy安装请参考:安装指南. 我们将使用开放目录项目(dmoz)作为抓取的例子. 这篇入门教程将引导你完成如下任务: 创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行 ...
- Python使用Scrapy爬虫框架全站爬取图片并保存本地(妹子图)
大家可以在Github上clone全部源码. Github:https://github.com/williamzxl/Scrapy_CrawlMeiziTu Scrapy官方文档:http://sc ...
- scrapy爬虫框架入门实战
博客 https://www.jianshu.com/p/61911e00abd0 项目源码 https://github.com/ppy2790/jianshu/blob/master/jiansh ...
随机推荐
- HyperLedger Fabric 1.1 手动部署单机单节点
手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2 ...
- Mac环境下使用VSCode搭建Go开发环境
换新工作啦!!!开心一下.到了新公司一看,乖乖,全MAC办公,让我这只用过windows的土包子怎么活,而且公司的人都好高冷,于是自己摸索着搭建go语言开发环境了. go语言的ide挺多的,JetBr ...
- [ZJOI2007] 矩阵游戏
Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两 ...
- 微信公众平台开发,图文回复、access_token生成调用、以及微信SDK的实现(2)
上一节课,我给大家分享了微信API接入以及事件推送的回复,这是微信开发的第二节课,重点给说一说单图文回复,多图文回复,access_token,微信SDK. 公众号消息回复很多种形式,常见的形式有,文 ...
- 实现Windows程序的数据的绑定
1.创建DataSet对象 语法: DataSet 数据集对象 =new DataSet("数据集的名称字符串"); 语法中的参数是数据集的名称字符串,可以有,也可以没有.如 ...
- 走进webpack(2)--第三方框架(类库)的引入及抽离
在当代的前端开发中,很少会用原生JS来开发页面,最基本的都会使用jQuery来节省我们开发的时间和效率,而angular,vue,react的出现更是为前端开发者带来了福音.那么这篇文章就说说如何用w ...
- strcat函数
原型:char *strcat ( char *dest, const char *src) 用法:#include <string.h> 功能:连接两个字符串:strcat( ...
- Java基础学习笔记二十一 多线程
多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...
- Sublime Text3下使用Python,REPL的安装与快捷键设置方法
前提条件:连接外网 1.安装管理插件(CTRL+SHIFT+P),找到Package Control:install package一项,回车后继续选择SublimeREPL插件,进行安装: ...
- 记录python接口自动化测试--利用unittest生成测试报告(第四目)
前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py ...