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 ...
随机推荐
- EOS 上线前,先搞懂这两个基本概念
如果你曾经尝试在本地运行 EOS 测试节点,会发现编译.运行并不是特别复杂,但官方教程里两个概念很容易把人搞晕: Account(账户)和 Wallet (钱包). EOS 的 Wallet 跟其他区 ...
- SIMD---SSE系列及效率对比
SSE(即Streaming SIMD Extension),是对由MMX指令集引进的SIMD模型的扩展.我们知道MMX有两个明显的缺点: 只能操作整数. 不能与浮点数同时运行(MMX使用FPU寄存器 ...
- 测试框架Mocha
NodeJS里最常用的测试框架估计就是mocha了.它支持多种node的assert libs, 同时支持异步和同步的测试,同时支持多种方式导出结果,也支持直接在browser上跑Javascript ...
- 使用Docker快速搭建Nginx+PHP-FPM环境
下载nginx官方镜像和php-fpm镜像 docker pull nginx docker pull bitnami/php-fpm 使用php-fpm镜像开启php-fpm应用容器 docker ...
- .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序
一.前言 为什么选择VS Code?VS Code 是一款跨平台的代码编辑器,想想他的哥哥VS,并是微软出品的宇宙第一IDE,那作为VS的弟弟,VS Code 也不会差,毕竟微软出品.反正ken是这么 ...
- 使用属性升级MyBank
一.访问修饰符 private :使用private访问修饰符修饰的属性或者方法只能在本类中使用 public :可以在任何类中访问到 二.this 关键字:代表当前类,this.属性:代 ...
- DataTables ajax + bootstrap 分页/搜索/排序/常见问题
最近学校的网站建设需要,尝试使用了下Jquery dataTables控件,接触过C#的人都知道,C#中也含有一个DataTable,但它和我们今天讨论的东西无关 我使用的是官网最新的DataTabl ...
- SpringBoot03 项目热部署
1 问题 在编写springBoot项目时,经常需要修改代码:但是每次修改代码后都需重新启动,修改的代码才会生效 2 这么实现IDEA能够像Eclipse那样保存过后就可以自动进行刷新呢 将sprin ...
- CSS 语法
CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器通常是您需要改变样式的 HTML 元素. 每条声明由一个属性和一个值组成. 属性(property)是您希望设置的样 ...
- 爬虫实践---悦音台mv排行榜与简单反爬虫技术应用
由于要抓取的是悦音台mv的排行榜,这个排行榜是实时更新的,如果要求不停地抓取,这将有可能导致悦音台官方采用反爬虫的技术将ip给封掉.所以这里要应用一些反爬虫相关知识. 目标网址:http://vcha ...