scrapy--dytt(电影天堂)
喜欢看电影的小伙伴,如果想看新的电影,然后没去看电影院看,没有正确的获得好的方法,大家就可以在电影天堂里进行下载。这里给大家提供一种思路。
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(电影天堂)相关推荐
- scrapy初步-简单静态爬虫(爬取电影天堂所有电影)
之前用java写过一个简单的爬取电影天堂信息的爬虫,后来发现用python写这种简单的爬虫程序更简单,异步网络框架在不使用多线程和多进程的情况下也能增加爬取的速度,目前刚开始学scrapy,用这个写了 ...
- Scrapy 电影天堂
目录 1.打开cmd,创建scrapy项目 2.分析目标网页,获取数据 3.完整代码 1.打开cmd,创建scrapy项目 # 创建 scrapy项目 (九漏鱼就不翻译天堂了) scrapy star ...
- 电影天堂React Native 客户端
电影天堂React Native 客户端 经过二十多天的奋战,电影天堂for React Native 客户端初步完成,最新的影片资源等你来体验! 严重声明: 本项目中所用的api来自Windows1 ...
- 电影天堂React Native 客户端V2.0发布
电影天堂React Native 客户端 重新开始! 具体更新以https://github.com/XboxYan/DYTT为准. 重新开始 两年前发布了第一个版本. 现在, 使用最新的react- ...
- python3 爬取电影天堂最新电影
''' 作业 爬去dytt 2019新片精品 -> 把所有电影的名字, 主演, 下载链接. 放在一个json文件里 {{"main_people": ["井柏然&q ...
- 电影天堂React Native客户端V2.0
电影天堂React Native客户端V2.0 DYTT 重新开始 免责声明 为什么要重新开始呢 特色 项目依赖 安装 下载 相关截图 欢迎页 首页 功能菜单 历史记录 收藏 主题颜色 搜索 搜索结果 ...
- Python 网络爬虫实战:采集《电影天堂》上万部动作片电影
不知不觉,玩爬虫玩了一个多月了. 我愈发觉得,爬虫其实并不是什么特别高深的技术,它的价值不在于你使用了什么特别牛的框架,用了多么了不起的技术,它不需要.它只是以一种自动化搜集数据的小工具,能够获取到想 ...
- python爬取电影天堂首页
用python写了个小爬虫,用来爬取电影天堂首页放置的几十部电影的名称,上映日期和下载链接,用到了beautifulsoup库和lxml库用来解析 代码如下: import requests impo ...
- python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...
相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...
- python爬虫新手项目-Python爬虫实战之取电影天堂,,新手练手项目
前言: 本文非常浅显易懂,可以说是零基础也可快速掌握.如有疑问,欢迎留言,笔者会第一时间回复.本文代码存于github 一.爬虫的重要性: 如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来 ...
最新文章
- 嵌入式系统一次EMMC测试的体会及错误分析过程
- redis 缓存 key常量命名规则
- models.ForeignKey( ,on_delete=models.CASCADE) # 关联外键
- Debian Linux下如何以root账号登录桌面
- TransH:将知识嵌入到超平面(知识图谱嵌入)2014 AAAI
- 第九章 Servlet工作原理解析
- 嵌入式 h.264中帧与场
- 借助winPE手工清除Deep Freeze冰点还原
- 今天申请了亚马逊新加坡站点
- web应用基本框架图
- JavaSE_05【数组】拓展练习
- Q3营收利润双降,新作将成Take-Two逆势大爆发的动力?
- 部署静态网站的五种方法
- 京沪高铁上火车位置的实时监视模拟网站的开发
- 第1-6课:算法设计常用思想之穷举法
- 菜单导航间竖杠竖线间隔符 | 效果的CSS实现
- PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)
- Java EE开发基础
- Java找图 (截屏找图 大图找小图)--自己实现“按键精灵”
- 【ZOJ 4062】Plants vs. Zombies