python爬虫框架之Scrapy之分页爬取电影天堂
首先创建项目
进入项目文件夹下用cmd
scrapy startproject dytt
打开项目创建app
scrapy genspider dy dytt8.net
修改settings.py
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'ROBOTSTXT_OBEY = FalseDOWNLOAD_DELAY = 1ITEM_PIPELINES = {'dytt.pipelines.DyttPipeline': 300,
}
编写items.py增加字段
class DyttItem(scrapy.Item):name = scrapy.Field()date = scrapy.Field()haibaio = scrapy.Field()content = scrapy.Field()zhongzi = scrapy.Field()
编写dy.py
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Ruleclass DySpider(CrawlSpider):name = 'dy'allowed_domains = ['dytt8.net']#这个位置写的是起始页的urlstart_urls = ['https://www.dytt8.net/html/gndy/dyzz/list_23_1.html']#通过正则或者bs4或者xpath找到每一页的选项(注意正则需要找到href)rules = (Rule(LinkExtractor(restrict_xpaths="//div[@class='x']//a"),callback='parse_item'
,folrue),)#这里是回调函数def parse_item(self, response):#通过xpath找到一级页面所需要的所有数据的块movielist = response.xpath("//div[@class='co_content8']//table")#遍历出每一个并且找到每一个需要的字段存入字典for movie in movielist:item = {}item['name'] = movie.xpath(".//tr[2]/td[2]//a/text()").extract_first()item['date'] = movie.xpath(".//tr[3]/td[2]//font/text()").extract_first()# print(item)#找到二级页面的链接并且手动拼接到域名后面next_url = "https://www.dytt8.net" + movie.xpath(".//tr[2]/td[2]//a/@href").extract_first()# print(next_url)#传入参数并且定义一个回掉函数处理二级页面yield scrapy.Request(url=next_url, callback=self.parse_info, meta={'item': item})def parse_info(self,response):#调出传进来的字典item = response.meta["item"]item["haibaio"] = response.xpath("//div[@id='Zoom']//p[1]//img[1]/@src").extract_first()item["content"] = response.xpath("//div[@id='Zoom']//p[1]/text()").extract()item["zhongzi"] = response.xpath("//div[@id='Zoom']//table//a/text()").extract_first()# print(item["content"])# print(item)传入pip管道使其下载保存yield item
编写pipelines.py
#导入json模块
import json
#导入redis模块
import redis
class DyttPipeline(object):#定义打开redis数据库的方法def open_spider(self,spider):self.rds = redis.StrictRedis(host='www.fanjianbo.com',port=6379,db=14)#定义保存的方法并且传入item保存(注意需要把item转成字典格式再存入)def process_item(self, item, spider):print(item)self.rds.lpush('stxiang', json.dumps(dict(item)))return item
python爬虫框架之Scrapy之分页爬取电影天堂相关推荐
- python爬虫天天基金_不使用Python爬虫框架,多线程+代理池爬取天天基金网、股票数据...
提到爬虫,大部分人都会想到使用Scrapy工具,但是仅仅停留在会使用的阶段.为了增加对爬虫机制的理解,我们可以手动实现多线程的爬虫过程,同时,引入IP代理池进行基本的反爬操作. 本次使用天天基金网进行 ...
- python爬电影天堂_python爬虫爬取电影天堂电影
python爬虫爬取电影天堂电影?本项目实现一个简单的爬虫,通过requests和BeautifulSoup爬取电影天堂电影信息,包括片名.年代.产地.类别.语言.海报链接和视频链接等内容.pytho ...
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- scrapy初步-简单静态爬虫(爬取电影天堂所有电影)
之前用java写过一个简单的爬取电影天堂信息的爬虫,后来发现用python写这种简单的爬虫程序更简单,异步网络框架在不使用多线程和多进程的情况下也能增加爬取的速度,目前刚开始学scrapy,用这个写了 ...
- python爬电影_使用Python多线程爬虫爬取电影天堂资源
最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...
- Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价
Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
- Python爬虫《自动化学报》数据爬取与数据分析
Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...
- 基于python爬虫————静态页面和动态页面爬取
基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...
最新文章
- vc 中对对话框的几种操作
- jstack命令使用
- java stax_XML编程总结(五)——使用StAX接口操作xml
- 清华计算机系女生每天看这些公众号
- 关于数据中台,扎克伯格和马化腾做法不同
- TCPIP详解3.8ifconfig
- 在Linux和qt下安装EasyPr遇到的问题
- 计算机导论(1—6章)笔记
- 如何让自己的博客主动被搜索引擎收录
- Java 给Word不同页面设置不同背景
- 【C/C++】泛型栈
- Win10系统中MySQL5.7的安装
- 【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
- 《涨知识啦30》-太阳能电池基本工作原理
- 2022中式烹调师(中级)操作证考试题模拟考试平台操作
- web项目引入PDF.js并添加水印禁止下载
- CBWFQ/WFQ的对比
- android+3g移植,惊呆!普耐尔MOMO迷你3G移植MIUI系统
- nginx 实现文件下载
- 武林榜(www.50bang.com)快挂了,和CSDN一样,老毛病层出不穷,转移统计网站了。郁闷。。。。