在开始爬取之前,必须创建一个新的 Scrapy 项目。进入自定义的项目目录中,运行下列命令:

创建项目命令
scrapy startproject 项目名称

切换到项目下

cd 项目名称目录

同时找到项目所见的文件夹 ,使用pycharm打来开(我用的是pycharm) 大致结构如下

下面来简单介绍一下各个主要文件的作用:

scrapy.cfg :项目的配置文件

mySpider/ :项目的 Python 模块,将会从这里引用代码

mySpider/items.py :项目的目标文件

mySpider/pipelines.py :项目的管道文件

mySpider/settings.py :项目的设置文件

mySpider/spiders/ :存储爬虫代码目录

在上一篇提到了整个爬取时的流程,今天我们实战一下 ,使用美剧100这个网站来爬取数据

创建美剧100的项目爬取文件

在之前的cmd命令行下输入,scrapy genspider s_mj100 meijutt.com

结构是 scrapy genspider + 文件名称 + 需要爬取的网站的域名

重新打开pycharm

接下来明确我们需要爬取的内容,在items中写好我们定义的字段(可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field 的类属性来定义一个Item(可以理解成类似于 ORM 的映射关系)。)

接下来就可以在我们新建的爬虫文件下写我们的代码了

记住在items下写好字段后需要将items导入到我们的爬取文件下,实例化调用

使用scrapy框架,不需要我们手动请求,框架底层会将请求的结果直接返回给我们使用

我们直接处理返回的内容

如果需要进行二次请求,直接使用callback方法,再写一个函数处理就可以了

拿到我们想要的数据后,打开settings下的pipelines 保存数据

在pipelines中

保存文件

完成!!!!

代码如下

# -*- coding: utf-8 -*-
import scrapy
from day0510.items import MJItem
from lxml import etreeclass SMj100Spider(scrapy.Spider):name = 's_mj100'allowed_domains = ['www.meijutt.com']start_urls = ['https://www.meijutt.com/new100.html']def parse(self, response):content = response.body.decode('gb2312')response = etree.HTML(content)li_list = response.xpath('//ul[@class="top-list  fn-clear"]/li')for li in li_list:index = li.xpath('./div[1]/i/text()')[0]name = li.xpath('./h5/a/text()')[0]state = li.xpath('./span[1]/font/text()')[0]try:word = li.xpath('./span[1]/font/span/em/text()')word = word[0]except:word = '本季终'type = li.xpath('./span[2]/text()')[0]tv = li.xpath('./span[3]/text()')[0]time = li.xpath('./div[2]//text()')[0]detail_url = li.xpath('./h5/a/@href')[0]detail_url = 'https://www.meijutt.com' +detail_urlitem = MJItem()item['index'] = indexitem['name'] = nameitem['state'] = stateitem['name'] = nameitem['word'] = worditem['type'] = typeitem['tv'] = tvitem['time'] = time# yield itemyield scrapy.Request(url=detail_url,meta={'data':item,'phantomjs':True},callback=self.parse_detail)def parse_detail(self,response):item = response.metayield item

使用scrapy 框架来抓取100部美剧的信息相关推荐

  1. 使用Scrapy框架,爬取b站番剧信息。

    使用Scrapy框架,爬取b站番剧信息. 感觉好久没写爬虫的,今天看了在b站浏览了一会儿,发现b站有很多东西可以爬取的,比如首页的排行榜,番剧感觉很容易找到数据来源的,所以就拿主页的番剧来练练手的. ...

  2. Scrapy 框架简介 抓取一点资讯

    什么是scrapy ? 1 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛 2 Scrapy 使用了 Twisted['twɪstɪd](其主要对 ...

  3. monty python喜剧-看美剧学托福:最受美国人喜欢的100部美剧

    在之前做了一个百大电影的清单之后,好莱坞知名媒体THR再次发布年度重量级策划,他们邀请了2800多名好莱坞影视从业人员,包括779名演员,365名制片人,268名导演等等,由他们选出自己最爱的剧集(主 ...

  4. monty python喜剧-【网络小说网中心】最经典的100部美剧,看到第一名瞬间服气!

    好莱坞知名媒体THR<好莱坞报道者>,邀请了2800多名好莱坞影视从业人员,包括779名演员,365名制片人,268名导演等等, 由他们选出自己最爱的剧集,最终汇总成为这个百大经典美(英) ...

  5. Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息

    Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...

  6. 使用python3.7中的scrapy框架,爬取起点小说

    这几天在学习scrapy框架,感觉有所收获,便尝试使用scrapy框架来爬取一些数据,对自己阶段性学习进行一个小小的总结 本次爬取的目标数据是起点中文网中的免费作品部分,如下图: 本次一共爬取了100 ...

  7. scrapy爬虫之抓取《芳华》短评及词云展示

    简介 在scrapy爬虫之<琅琊榜2>话题title收集及词云展示 及scrapy爬虫之模拟登录豆瓣l 两篇博文中,我们分别实现了直接爬取内容及模拟登陆豆瓣,现在我们将这两个功能整合到一起 ...

  8. 手把手教你使用scrapy框架来爬取北京新发地价格行情(理论篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 博观而约取,厚积而薄发. 大家好! ...

  9. Python进阶之Scrapy利用ImagesPipeline抓取汽车之家宝马5系缩略图

    Python进阶之Scrapy利用ImagesPipeline抓取汽车之家宝马5系缩略图 1. 创建项目 2. 使用ImagesPipeline爬取数据 items.py setings.py aut ...

最新文章

  1. 【问题解决】Processing库安装方法简介
  2. c语言程序设计多数求最大值,C语言编程问题存在三个整数,使x²+y²+z²=625,求x+y+z的最大值。这是大一C语言实验书的习题,请不要用过于复杂的算法语句...
  3. Docker: vmware企业级docker镜像私服--Harbor的搭建
  4. php date( ymd_PHP-date(),time()函数的应用
  5. 批处理创建程序的快捷方式
  6. Linux下文件的多进程拷贝
  7. VVDocumenter 使用
  8. Java知识点总结(Java容器-ArrayList)
  9. NFrog[NHibernate代码工具]发布第一个版本
  10. 10分钟学习简略五子棋 源码+注释教学
  11. 第 6 章 MybatisPlus 代码生成器
  12. 原声socket 向服务端发长连接
  13. echarts地图展示
  14. python期货自动交易_3自动交易模块_python量化交易_Python视频-51CTO学院
  15. 线程、进程、多线程、多进程 和 多任务 小结
  16. 001.学习Python之-设置你的操作系统的环境变量,以便可以轻松进入 Python 环境
  17. docker logs 说明
  18. 基于TextRank算法的单领域多文本摘要(英文摘要)
  19. 多媒体个人计算机能处理什么,多媒体计算机可以处理的信息类型有什么?
  20. Datawhale 7月学习——李弘毅深度学习:回归

热门文章

  1. Best Time to Buy and Sell Stock III
  2. STM32控制舵机转动_从0到1
  3. PE中Ghost 使用详解
  4. Linux C 库打桩技术
  5. 爬虫 抖音用户页 所有无水印视频 批量下载 最新 (2021-3-18 可用--失效我会更新)
  6. 【可视化】rviz下的kitti数据集可视化(1)
  7. 移动浏览器内核及连接数
  8. 2021年高考全国理科数学I卷数学压轴题的证明
  9. undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocat
  10. 定义一个教师类输出他的基本信息,类和静态的练习--C#