喜欢看电影的小伙伴,如果想看新的电影,然后没去看电影院看,没有正确的获得好的方法,大家就可以在电影天堂里进行下载。这里给大家提供一种思路。

1.dytt.py

# -*- coding: utf-8 -*-
import scrapy
from Dytt.items import DyttItem
from scrapy.linkextractors import LinkExtractor
from Dytt.settings import USER_AGENT
import pdbclass DyttSpider(scrapy.Spider):name = 'dytt'allowed_domains = ['www.dy2018.com']headers = {'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.8','Connection': 'keep-alive','Content-Length': '11','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Host': 'www.dy2018.com','Origin': 'http://www.dy2018.com','Referer': 'http://www.dy2018.com/html/tv/oumeitv/index.html','User-Agent': USER_AGENT,'X-Requested-With': 'XMLHttpRequest',}start_urls = ['http://www.dy2018.com/html/tv/oumeitv/index.html']def parse(self, response):le = LinkExtractor(restrict_css='div.co_area1 div.co_content2')for link in le.extract_links(response):yield scrapy.Request(link.url,callback=self.parse_url,headers=self.headers)def parse_url(self,response):sel = response.css('div#Zoom')dytt = DyttItem()dytt['china_name'] = sel.xpath('./p/text()').extract()[1]dytt['english_name'] = sel.xpath('./p/text()').extract()[2]dytt['year'] = sel.xpath('./p/text()').extract()[3]dytt['home'] = sel.xpath('./p/text()').extract()[4]dytt['type'] = sel.xpath('./p/text()').extract()[5]dytt['time'] = sel.xpath('./p/text()').extract()[8]dytt['director'] = sel.xpath('./p/text()').extract()[15]dytt['role'] = sel.xpath('./p/text()').extract()[16]dytt['ftp'] = sel.xpath('(.//tbody)[1]//a/@href').extract()[0]dytt['thunder'] = sel.xpath('(.//tbody)[2]//a/@href').extract()[0]yield dytt

2.items.py

import scrapyclass DyttItem(scrapy.Item):china_name = scrapy.Field()english_name = scrapy.Field()year = scrapy.Field()home = scrapy.Field()type = scrapy.Field()time = scrapy.Field()director = scrapy.Field()role = scrapy.Field()ftp = scrapy.Field()thunder = scrapy.Field()

3.pipelines.py

# -*- coding: utf-8 -*-
import json
import codecs
import chardetclass DyttPipeline(object):def open_spider(self, spider):self.file = codecs.open('dytt1.json', 'w', encoding='utf-8') ###重要2def close_spider(self, spider):self.file.close()def process_item(self, item, spider):line = json.dumps(dict(item), ensure_ascii=False) + "\n" ### 重要3
        self.file.write(line)return item

4.settings.py

USER_AGENT ={       #设置浏览器的User_agent"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
}CONCURRENT_REQUESTS = 16    #同时来16个请求
DOWNLOAD_DELAY = 0.2      #0.2s后开启处理第一个请求# Obey robots.txt rules
ROBOTSTXT_OBEY = FalseFEED_EXPORT_FIELDS = ['china_name','english_name','year','home','type','time','director','role','ftp','thunder']COOKIES_ENABLED = FalseITEM_PIPELINES = {'Dytt.pipelines.DyttPipeline': 300,
}

在pipelines.py文件中写入.json格式

2.开始爬取时,返回EORRO 400

解决办法:在dytt.py文件中添加:header,重新运行

3.无法爬取thunder链接,在网页中点击查看源码(真正爬取的信息),即可发现--无法显示thunder具体信息

查看源代码:

如果有遇到其他问题的小伙伴,欢迎留言!!!

转载于:https://www.cnblogs.com/eilinge/p/9402099.html

scrapy--dytt(电影天堂)相关推荐

  1. scrapy初步-简单静态爬虫(爬取电影天堂所有电影)

    之前用java写过一个简单的爬取电影天堂信息的爬虫,后来发现用python写这种简单的爬虫程序更简单,异步网络框架在不使用多线程和多进程的情况下也能增加爬取的速度,目前刚开始学scrapy,用这个写了 ...

  2. Scrapy 电影天堂

    目录 1.打开cmd,创建scrapy项目 2.分析目标网页,获取数据 3.完整代码 1.打开cmd,创建scrapy项目 # 创建 scrapy项目 (九漏鱼就不翻译天堂了) scrapy star ...

  3. 电影天堂React Native 客户端

    电影天堂React Native 客户端 经过二十多天的奋战,电影天堂for React Native 客户端初步完成,最新的影片资源等你来体验! 严重声明: 本项目中所用的api来自Windows1 ...

  4. 电影天堂React Native 客户端V2.0发布

    电影天堂React Native 客户端 重新开始! 具体更新以https://github.com/XboxYan/DYTT为准. 重新开始 两年前发布了第一个版本. 现在, 使用最新的react- ...

  5. python3 爬取电影天堂最新电影

    ''' 作业 爬去dytt 2019新片精品 -> 把所有电影的名字, 主演, 下载链接. 放在一个json文件里 {{"main_people": ["井柏然&q ...

  6. 电影天堂React Native客户端V2.0

    电影天堂React Native客户端V2.0 DYTT 重新开始 免责声明 为什么要重新开始呢 特色 项目依赖 安装 下载 相关截图 欢迎页 首页 功能菜单 历史记录 收藏 主题颜色 搜索 搜索结果 ...

  7. Python 网络爬虫实战:采集《电影天堂》上万部动作片电影

    不知不觉,玩爬虫玩了一个多月了. 我愈发觉得,爬虫其实并不是什么特别高深的技术,它的价值不在于你使用了什么特别牛的框架,用了多么了不起的技术,它不需要.它只是以一种自动化搜集数据的小工具,能够获取到想 ...

  8. python爬取电影天堂首页

    用python写了个小爬虫,用来爬取电影天堂首页放置的几十部电影的名称,上映日期和下载链接,用到了beautifulsoup库和lxml库用来解析 代码如下: import requests impo ...

  9. python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...

    相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...

  10. python爬虫新手项目-Python爬虫实战之取电影天堂,,新手练手项目

    前言: 本文非常浅显易懂,可以说是零基础也可快速掌握.如有疑问,欢迎留言,笔者会第一时间回复.本文代码存于github 一.爬虫的重要性: 如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来 ...

最新文章

  1. 嵌入式系统一次EMMC测试的体会及错误分析过程
  2. redis 缓存 key常量命名规则
  3. models.ForeignKey( ,on_delete=models.CASCADE)    # 关联外键
  4. Debian Linux下如何以root账号登录桌面
  5. TransH:将知识嵌入到超平面(知识图谱嵌入)2014 AAAI
  6. 第九章 Servlet工作原理解析
  7. 嵌入式 h.264中帧与场
  8. 借助winPE手工清除Deep Freeze冰点还原
  9. 今天申请了亚马逊新加坡站点
  10. web应用基本框架图
  11. JavaSE_05【数组】拓展练习
  12. Q3营收利润双降,新作将成Take-Two逆势大爆发的动力?
  13. 部署静态网站的五种方法
  14. 京沪高铁上火车位置的实时监视模拟网站的开发
  15. 第1-6课:算法设计常用思想之穷举法
  16. 菜单导航间竖杠竖线间隔符 | 效果的CSS实现
  17. PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)
  18. Java EE开发基础
  19. Java找图 (截屏找图 大图找小图)--自己实现“按键精灵”
  20. 【ZOJ 4062】Plants vs. Zombies

热门文章

  1. Android设备远程控制工具AVDTools使用
  2. win7桌面计算机图标去掉,win7桌面图标小箭头怎么去掉?
  3. 统一的账号密码管理系统-信息安全课程设计
  4. Bazinga 题解
  5. win10安装SVN失败问题汇总
  6. prisma1.0实践
  7. 计算机演示文稿实验报告,演示文稿实验报告
  8. 异构蜂窝网络K-Tier下行链路的建模与matlab分析
  9. 力扣数据库(end09.02)
  10. js对象深浅拷贝,来,试试看!