说一下我的爬取过程吧

第一步: 当然是 scrapy startproject  + 名字   新建爬虫项目

第二步:  scrapy genspider -t crawl +爬虫名字+ 所爬取网站的域名      (-t crawl是全站爬虫)

第三步:

spider文件下的代码
import scrapy
import re
from scrapy.linkextractors import LinkExtractor # 链接提取器
from scrapy.spiders import CrawlSpider, Rule # 导入全站爬虫和采集规则 class Ygdy8Spider(CrawlSpider):
name = 'ygdy8' # 爬虫名字
allowed_domains = ['www.ygdy8.com'] # 爬虫只在该域名下爬取数据
start_urls = ['http://www.ygdy8.com/'] # 开始采集的网址
# 采集规则集合
rules = (
# 具体采集的规则
# allow 是选择出所有带有index的网址 allow是正则表达式 只要写你想提取的链接的一部分就可以了, deny是不允许提取的
Rule(LinkExtractor(allow=r'index.html', deny='game')),
# follow=true 意思是下一次提取的网页中如果包含我们需要提取的信息,是否还要继续提取,True代表继续提取
Rule(LinkExtractor(allow=r'list_\d+_\d+.html'), follow=True),
# 提取详情页信息 callback 回调函数, 将相应交给这个函数来处理
Rule(LinkExtractor(allow=r'/\d+/\d+.html'), follow=True, callback='parse_item'),
) # 解析采集回来的数据
def parse_item(self, response): # 处理网页数据,提取下载链接
# .*?代表提取除了换行以外的任何信息
ftp_url = re.findall(r'<a href="(.*?)">ftp', response.text)
name = re.findall(r'<title>(.*?)</title>', response.text)
if ftp_url and name:
items = {
'name': name,
'ftp_url': ftp_url
}
yield items
管道文件
import json
import os
import csv class JsonPipeline(object):
def __init__(self):
self.file = open('阳光电影.json', 'w+', encoding='utf-8') def open_spider(self, spider):
self.file.write('[') def process_item(self, item, spider):
line = json.dumps(dict(item), ensure_ascii=False) + ",\n"
self.file.write(line)
return item def close_spider(self, spider):
self.file.seek(-1, os.SEEK_END)
self.file.truncate()
self.file.write(']')
self.file.close() class CsvPipeline(object):
def __init__(self):
self.f = open("阳光电影.csv", "w", newline='')
self.writer = csv.writer(self.f)
self.writer.writerow(['name', 'ftp_url']) def process_item(self, item, spider):
yangguang_list = [item['name'], item['ftp_url']]
self.writer.writerow(yangguang_list)
return item
settings
ITEM_PIPELINES = {
'movie.pipelines.JsonPipeline': 300,
'movie.pipelines.CsvPipeline': 300,
}

最后执行爬虫代码  scrapy crawl + 爬虫名字

scrapy爬取阳光电影网全站资源的更多相关文章

  1. Python 2.7_First_try_爬取阳光电影网_20161206

    之前看过用Scrapy 框架建立项目爬取 网页解析时候用的Xpath进行解析的网页元素 这次尝试用select方法匹配元素 1.入口爬取页面 http://www.ygdy8.com/index.ht ...

  2. Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207

    1.昨天文章http://www.cnblogs.com/Mr-Cxy/p/6139705.html 是获取电影网站主菜单 然后获取每个菜单下的电影url  2.今天是对电影url 进行再次解析获取下 ...

  3. scrapy爬取豆瓣电影top250

    # -*- coding: utf-8 -*- # scrapy爬取豆瓣电影top250 import scrapy from douban.items import DoubanItem class ...

  4. 使用 Scrapy 爬取去哪儿网景区信息

    Scrapy 是一个使用 Python 语言开发,为了爬取网站数据,提取结构性数据而编写的应用框架,它用途广泛,比如:数据挖掘.监测和自动化测试.安装使用终端命令 pip install Scrapy ...

  5. Python Scrapy 爬取煎蛋网妹子图实例(一)

    前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...

  6. scrapy爬取猫眼电影排行榜

    做爬虫的人,一定离不开的一个框架就是scrapy框架,写小项目的时候可以用requests模块就能得到结果,但是当爬取的数据量大的时候,就一定要用到框架. 下面先练练手,用scrapy写一个爬取猫眼电 ...

  7. Python网络爬虫 | Scrapy爬取妹子图网站全站照片

    根据现有的知识,写了一个下载妹子图(meizitu.com)Scrapy脚本,把全站两万多张照片下载到了本地. 网站的分析 网页的网址分析 打开网站,发现网页的网址都是以 http://www.mei ...

  8. 网络爬虫之scrapy爬取某招聘网手机APP发布信息

    1 引言 过段时间要开始找新工作了,爬取一些岗位信息来分析一下吧.目前主流的招聘网站包括前程无忧.智联.BOSS直聘.拉勾等等.有段时间时间没爬取手机APP了,这次写一个爬虫爬取前程无忧手机APP岗位 ...

  9. scrapy爬取迅雷电影天堂最新电影ed2k

    前言 几天没用scrapy爬网站了,正好最近在刷电影,就想着把自己常用的一个电影分享网站给爬取下来保存到本地mongodb中 项目开始 第一步仍然是创建scrapy项目与spider文件 切换到工作目 ...

随机推荐

  1. [termux Linux] termux不用ssh远程控制shell

    前言 今天想在手机上测试python代码(termux),但是手机操作确实太麻烦了,所以就想试试用ssh来用电脑操作,但是网上说似乎不能用ip链接ssh 但是配置密钥文件有很麻烦.所以,我想了一个歪招 ...

  2. 调用原生硬件 Api 实现照相机 拍照和相册选择 以及拍照上传

    一.Flutter image_picker 实现相机拍照和相册选择   https://pub.dev/packages/image_picker   二.Flutter 上传图片到服务器   ht ...

  3. 关于video++,jsrun,有道笔记等的感想

    这几天一直在思考切入点.想了很多,有关于给初创企业提供社交平台营销的,如公众号,小程序,支付宝的到位,附近等.这些初看起来可行,细想起来有一些根本不完备.如通过微小宝多平台客户端了解最热的内容,在内容 ...

  4. no module named系列问题解决

    持续更新中~~~ 1.终端指令错误:no module named 'gdbm' 解决办法: sudo apt-get install python3.6-gdbm 2.终端无法定位软件包 解决办法: ...

  5. CefApp和CefClient的作用

    CefApp 在cefsimple中,提到了一个cefapp的类型,这个类型是一个接口类,主要目的是提供获取三种handler的接口 /// // Implement this interface t ...

  6. Spring - 周边设施 - H2 embedded 版本引入

    1. 概述 在 Spring 开发中, 引入 H2 做辅助测试数据库 2. 场景 复习 Spring, 复习到 持久化 部分 需要一个 数据库 来做测试 方案 方案1: 搭建 MySQL 实例 虽然现 ...

  7. 理解ASP.NET Core验证模型 Claim, ClaimsIdentity, ClaimsPrincipal

    Claim, ClaimsIdentity, ClaimsPrincipal: Claim:姓名:xxx,领证日期:xxx ClaimsIdentity:身份证/驾照 ClaimsPrincipal: ...

  8. Flask 学习之 路由

    一.路由的基本定义 # 指定访问路径为 demo1 @app.route('/demo1') def demo1(): return 'demo1' 二.常用路由设置方式 @app.route('/u ...

  9. 6_9 天平(UVa839)<二叉树的DFS>

    前一个ubiquous通信小工具,移动只是一个由弦和电线组成的结构五彩缤纷的东西.这种移动通常被发现悬挂在小婴儿的摇篮.图说明了一个简单的移动.它只是一个电线,悬挂的一个字符串,每一个对象的对象.它可 ...

  10. lca最近公共祖先与树上倍增。

    https://vjudge.net/contest/295298#problem/A lca 的题目 求任意两点的距离. A题是在线算法,用st表rmq来实现. https://blog.csdn. ...