在你的spiders目录下创建自己第一个爬虫项目,我我这儿命名为AiquerSpider.py
然后编辑文件

# !/usr/bin/python
# -*- coding: UTF-8 -*-
import scrapy
from scrapy.http import Request

以上是我所需要导入使用的包,你也可以自定义别的包.
接下来咱们创建类:

# !/usr/bin/python
# -*- coding: UTF-8 -*-
import scrapy
from scrapy.http import Requestclass AiquerSpider(scrapy.Spider):# name 定义爬虫名称name = ''# allowed_domains定义访问域allowed_domains = []# bash_url定义要爬取的网站bash_url = ''# 这个方法是必须有不然你的爬虫跑不起来(同等java中的main方法)def parse(self, response):pass

在写代码之前呢咱们要去做点大事,具体看下面,嘿嘿!
咱们要首先定义集合就是items.py中用来存放的数据
咱们看看网页吧,在具体说需要哪些东西.

上面呢我们需要网站地址\用户名称\视频图片\视频地址
下载视频的话我这儿就不做讲解了我们就获取这几个参数为例子
首先,我们需要爱奇艺网站用户地址做分析

http://www.iqiyi.com/u/141242...
http://www.iqiyi.com/u/用户ID 这一段是找到用户网站首页
/v 这个是该用户下的视频
这样我们就了解到了如何去手动指定用户并且爬取他下面的视频了
废话不多说,先上items的代码

# -*- coding: utf-8 -*-# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass AiquerItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()# 视频名称video_name = scrapy.Field()# 视频时间video_time = scrapy.Field()# 视频图片路径video_imgurl = scrapy.Field()# 视频路径video_url = scrapy.Field()pass

我们的items就写完了
再回到咱们的爬虫上面,具体解释都在里面的注释中了

# !/usr/bin/python
# -*- coding: UTF-8 -*-
# 这里是自己导入的包
import scrapy
from scrapy.http import Request
from AiQuer.items import AiquerItem
# 定义类
class AiquerSpider(scrapy.Spider):# http://www.iqiyi.com/u/1412422046/v?page=1&video_type=1# name 定义爬虫名称name = 'AiquerSpider'# allowed_domains定义访问域allowed_domains = ['iqiyi.com']# bash_url定义要爬取的网站bash_url = 'http://www.iqiyi.com/u/'# 做拼接地址的结尾bashurl = '/v?page=1'user_id = None# 用来获取输入的用户编号返回拼接地址def start(self):self.user_id = self.validateIsNull(input(u'请输入用户编号:'))if self.user_id:url = self.bash_url + self.user_id + self.bashurlreturn urldef start_requests(self):# 首先获取用户首页地址url = self.start()# Request函数第一个是地址,第二个是调用的方法yield Request(url, self.max_page)#yield Request('http://www.iqiyi.com/u/1412422046/v?page=2', self.parse)# 非空验证def validateIsNull(self, user_id):if user_id.strip() == '':return Noneelse:return user_id# 获取最大页数def max_page(self, response):max_num = int(response.xpath('//div//a[last()-1]/text()').extract()[0])for i in range(1, max_num + 1):url = self.bash_url + self.user_id + '/v?page=' + str(i) + '&video_type=1'# print(url)yield Request(url, self.parse)# 获取页面需要的数据def parse(self, response):item = AiquerItem()# 注释代码块用来做测试的,小伙伴可以拿出来一个一个测试'''names = response.xpath('//ul/li//div//p//a/@title').extract()times = response.xpath('//div//span[@class="mod-listTitle_right"]/text()').extract()imgurls = response.xpath('//div[@class="site-piclist_pic"]//a//img/@src').extract()urls = response.xpath('//div[@class="site-piclist_pic"]//a/@href').extract()print(names)print(times)print(imgurls)print(urls)'''# 通过xpath去寻找HTML页面中指定数据封装在items类中item['video_name'] = response.xpath('//ul/li//div//p//a/@title').extract()item['video_time'] = response.xpath('//div//span[@class="mod-listTitle_right"]/text()').extract()item['video_imgurl'] = response.xpath('//div[@class="site-piclist_pic"]//a//img/@src').extract()item['video_url'] = response.xpath('//div[@class="site-piclist_pic"]//a/@href').extract()return item

有同学肯定会问('//div[@class="site-piclist_pic"]//a/@href')这是啥玩意
Xpath:

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。

在这篇中是要有点XPath的基础的可以先去看看这个教程配合这个教程一起写提高XPath熟练度.
教程链接:XPath教程
接下来就是如何保存这些数据了
介绍两种一个是直接保存为文件,另外一个是保存到数据库
请看下篇

小白爬虫scrapy第三篇相关推荐

  1. 十、给小白看的第三篇Python基础教程

    本文是第三篇,一共四篇打下Python基础 @Author:Runsen @公众号:Python之王 上面两个基本搞定了Python中数据结构,下面花一篇讲讲最重要的类. 7.面向对象编程 万物皆是对 ...

  2. Scrapy第三(②)篇:创建scrapy项目

    1.创建项目 新建存放项目的文件夹scrapyproject,并黑窗口cd到该文件夹下: 创建项目 scrapy startproject 项目名称 PyCharm打开项目: 创建一个爬虫:打开Ter ...

  3. DSP入门小白学习日记第三篇

    信号采集 首先我们要知道dsp芯片是用来处理信号数据的,那这个信号源怎么来呢?一般是通过传感器外设采集连接高速接口啥的(等以后买了再说吧),但是目前学习的时候只有一块开发板,所以只能自己模拟数据了,呜 ...

  4. python网页爬虫循环获取_Python 爬虫第三篇(循环爬取多个网页)

    本篇是 python 爬虫的第三篇,在前面两篇 Python 爬虫第一篇(urllib+regex) 和 Python 爬虫第二篇(urllib+BeautifulSoup) 中介绍了如何获取给定网址 ...

  5. 静觅小白爬虫及进阶系列学习笔记

    小白爬虫第一弹之抓取妹子图 遇到问题:python2.x和python3.x有区别. 1. 编码问题,报错ASCII时要在前面加上 import sys reload(sys) sys.setdefa ...

  6. requests 获取div_爬虫系列第五篇 使用requests与BeautifulSoup爬取豆瓣图书Top250

    上一篇我们学习了BeautifulSoup的基本用法,本节我们使用它来爬取豆瓣图书Top250. 一.网页分析 我们爬取的网页的url是https://book.douban.com/top250?i ...

  7. 京东口罩爬虫、使用教程、第三篇

    京东口罩爬虫.使用教程.第三篇 功能 效果展示 V2版本(正常模式),下单速度1.7秒(网速影响) V2版本(极速模式),下单速度1.3秒(网速影响) V3版本,下单速度1秒(网速影响) window ...

  8. php 爬虫_Scrapy 爬虫完整案例-基础篇

    1 Scrapy 爬虫完整案例-基础篇 1.1 Scrapy 爬虫案例一 Scrapy 爬虫案例:爬取腾讯网招聘信息 案例步骤: 第一步:创建项目. 在 dos下切换到目录 D:爬虫_scriptsc ...

  9. 一看就明白的爬虫入门讲解-基础理论篇(上篇)

    作者:孔淼 关于爬虫内容的分享,我会分成两篇,六个部分来分享,分别是: 1)  我们的目的是什么 2)  内容从何而来 3)  了解网络请求 4)  一些常见的限制方式 5)  尝试解决问题的思路 6 ...

最新文章

  1. php set medias,laravel5.1 -- Integrate FileManager and CKeditor into laravel
  2. 10倍效率的程序员的好习惯,你有几个?
  3. 有关增强现实技术的过去、现在和未来的发展
  4. c语言编程基本概念,读朱兆祺攻破C语言之一----编程基本概念
  5. boost的chrono模块运行时解析的测试程序
  6. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
  7. c# asp.net mvc 开发的正方教务助手(二)
  8. 俺是如何在3个月内写出博士论文的?
  9. SELinux相关内容
  10. AI 技术越来越平民化,程序员不想被淘汰该怎么办?
  11. hdu 1251 字典树,指针版
  12. vue使用node-sass@4.9.0时,npm intall出错
  13. iOS下浏览器document/body的click事件无效的坑
  14. 使用SVM分类器进行图像多分类
  15. visio 2003 怎么样画括号
  16. 如何导出微信聊天记录
  17. Flex弹性布局详细介绍
  18. 迷宫问题(OJ平台)附代码解释
  19. C语言关键字浅析-enum
  20. 传奇开服怎么开服?不会技术自己能开服吗?传奇开服需要准备什么?前期需要投入多少?

热门文章

  1. 石正丽/周鹏团队发表冠状病毒新研究,进一步证明新冠非实验室泄漏
  2. 揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活
  3. 白宫计划2019年春季发布新版人工智能研究战略
  4. Java 程序员一次有趣的面试 | 每日趣闻
  5. vue 引入bootstarp --webpack
  6. 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码
  7. Python之路----迭代器与生成器
  8. 对讲机的那点事:带你玩转LD800数字车载台读、写频操作:一
  9. 元组Tuple、数组Array、映射Map
  10. RabbitMQ之与Spring集成