scrapy爬虫简单案例(简单易懂 适合新手)
爬取所有的电影名字,类型,时间等信息
1.准备工作
创建项目
win + R 打开cmd输入
scrapy startproject 项目名
然后在pycharm终端输入
scrapy genspider 类名 xxx.com
一个爬虫类就创建好了
2.思路分析
- 我们爬取全站数据首先要将分页的url规律找到
- 因为我们的数据在二级页码,所以需要在一级页面里面拿到所以的二级页码url再进行请求
- 二级页码url拿到后就可以开始写xpath获取需要的数据了*
- 具体注释在代码内
代码如下
`import scrapy
from move.items import MoveItem
class TestSpider(scrapy.Spider):
name = 'Test'
# allowed_domains = ['xxx.con']
def start_requests(self):
# 有4896页数据所有循环请求
for i in range(1, 4897):
# html分页符用i代替
start_urls = f'https://www.ddoutv.com/f/27-{i}.html'
# 手动请求url
yield scrapy.Request(url=start_urls, callback=self.parse)
def parse(self, response, **kwargs):
# 爬取所有的二级页面的url
all_a = response.xpath('//div[@class="stui-pannel-box"]/div[@class="stui-pannel_bd"]/ul/li')
# 遍历出来
for li in all_a: # type:scrapy.Selector
link = li.xpath('./div/a/@href').extract()[0]
# 将url拼接完整
links = response.urljoin(link)
# 回调
yield scrapy.Request(url=links, callback=self.reques)
def reques(self, response):
# 获取二级页面的数据
all_name = response.xpath('//div[@class="stui-content"]/div[@class="container"]/div[@class="row"]/div/div[2]')
for i in all_name:
name = i.xpath('./h1/text()').extract_first(default=0)
print(name)
types = i.xpath('./p[1]/a[1]/text()').extract_first(default=0)
print(types)
address = i.xpath('./p[1]/a[2]/text()').extract_first(default=0)
print(address)
year = i.xpath('./p[1]/a[3]/text()').extract_first(default=0)
print(year)
actor = i.xpath('./p[2]/text()').extract_first(default=0)
print(actor)
director = i.xpath('./p[3]/text()').extract_first(default=0)
print(director)
update = i.xpath('./p[4]/text()').extract_first(default=0)
print(update)`
3.运行结果图

到此一个简单的scrapy爬取项目就完成啦!
scrapy爬虫简单案例(简单易懂 适合新手)的更多相关文章
- Scrapy爬虫及案例剖析
由于互联网的极速发展,所有现在的信息处于大量堆积的状态,我们既要向外界获取大量数据,又要在大量数据中过滤无用的数据.针对我们有益的数据需要我们进行指定抓取,从而出现了现在的爬虫技术,通过爬虫技术我们可 ...
- Python之Scrapy爬虫框架安装及简单使用
题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手
关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手 本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正 ...
- 做一个简单的scrapy爬虫
前言: 做一个简单的scrapy爬虫,带大家认识一下创建scrapy的大致流程.我们就抓取扇贝上的单词书,python的高频词汇. 步骤: 一,新建一个工程scrapy_shanbay 二,在工程中中 ...
- 简单scrapy爬虫实例
简单scrapy爬虫实例 流程分析 抓取内容:网站课程 页面:https://edu.hellobi.com 数据:课程名.课程链接及学习人数 观察页面url变化规律以及页面源代码帮助我们获取所有数据 ...
- python环境搭建-requests的简单安装(适合新手)
安装完python之后,一定要记住安装后的路径.这是我当前的路径. 下面是requests的安装步骤: 我们这里直接用pip安装(这样比较适合新手),新版python自带pip,python3.6.1 ...
- IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)
原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...
- Scrapy爬取小说简单逻辑
Scrapy爬取小说简单逻辑 一 准备工作 1)安装Python 2)安装PIP 3)安装scrapy 4)安装pywin32 5)安装VCForPython27.exe ........... 具体 ...
随机推荐
- 关于malloc源码中的bin_at宏定义的个人见解
0x01:简介 在堆中的内存申请和释放中,为了减少使用系统调用函数对内存操作,malloc_state(分配区)结构中使用了fastbinsY数组和bins数组.当chunk被free后,bins链会 ...
- Kubernetes:Ingress总结(一)
Blog:博客园 个人 参考:Ingress | Kubernetes.<Kubernetes进阶实战>.<Kubernetes网络权威指南 > 何谓Ingress?从字面意思 ...
- pyhon反射
一:反射 1.python面向对象中的反射: 通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 2.四个内置方法 hasattr 检测是否含有某属性 getatt ...
- SpringCloudAlibaba 微服务讲解(三)Nacos Discovery-服务治理
3.1 服务治理 先来思考一个问题,通过上一章的操作,我们已经实现微服务之间的调用,但是我们把服务提供者的网络地址(ip,端口)等硬编码到了代码中,这种做法存在许多问题: 一旦服务提供者地址变化,就需 ...
- Betaflight Configurator开源仓库说明-中文版
Betaflight Configurator Betaflight Configurator是Betaflight飞行控制系统的跨平台配置工具. 它在Google Chrome中作为应用程序运行,允 ...
- ESP8266 NodeMCU引脚说明,CH340和CP2102两款
开发ESP8266 NodeMCU GPIO功能时,虽然知道ESP8266 NodeMCU丝印引脚编号如下图所示(CP2102款),但是和实际对应的GPIO编号完全不一样. CP2102款 引脚说 ...
- String s = new String("xyz");创建了几个String Object?
两个.一个是直接量的xyz对象:另一个是通过new Sting()构造器创建出来的String对象. 通常来说,应该尽量使用直接量的String对象,这样具有更好的性能.
- zookeeper 负载均衡和 nginx 负载均衡区别 ?
zk 的负载均衡是可以调控,nginx 只是能调权重,其他需要可控的都需要自己写插件:但是 nginx 的吞吐量比 zk 大很多,应该说按业务选择用哪种方式.
- 什么是Spring Cloud Bus?
spring cloud bus 将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务直接的通讯,也可用于监控. 如果修改了配置文件,发送一次请求,所有的客户端便会重新读取配置 ...
- springcloud断路器作用?
当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应 当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应)断路器有完全打开状态:一段时间内 达到一定的 ...