先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)

正文

爬虫能做什么

爬虫的作用和目的只有一个,获取网络数据。我们知道,互联网是个数据的海洋,大量的信息漂浮在其中,想把这些资源收归己用,爬虫是最常用的方式。特别是最近几年大树据挖掘技术和机器学习以及知识图谱等技术的兴盛,更是对数据提出了更大的需求。另外也有很多互联网创业公司,在起步初期自身积累数据较少的时候,也会通过爬虫快速获取数据起步。

二、python爬虫框架scrapy——爬虫开发的利器

如果你刚刚接触爬虫的概念,我建议你暂时不要使用scrapy框架。或者更宽泛的说,如果你刚刚接触某一个技术门类,我都不建议你直接使用框架,因为框架是对许多基础技术细节的高级抽象,如果你不了解底层实现原理就直接用框架多半会让你云里雾里迷迷糊糊。

在入门爬虫之初,看scrapy的文档,你会觉得“太复杂了”。当你使用urllib或者Requests开发一个python的爬虫脚本,并逐个去解决了请求头封装、访问并发、队列去重、数据清洗等等问题之后,再回过头来学习scrapy,你会觉得它如此简洁优美,它能节省你大量的时间,它会为一些常见的问题提供成熟的解决方案。

scrapy数据流程图

这张图是对scrapy框架的经典描述,一时看不懂没有关系,用一段时间再回来看。或者把本文读完再回来看。

在一些书上会把爬虫的基本抓取流程概括为UR2IM,意思是数据爬取的过程是围绕URL、Request(请求)、Response(响应)、Item(数据项)、MoreUrl(更多的Url)展开的。上图的绿色箭头 体现的正是这几个要素的流转过程。图中涉及的四个模块正是用于处理这几类对象的:

Spider模块:负责生成Request对象、解析Response对象、输出Item对象 Scheduler模块:负责对Request对象的调度 Downloader模块:负责发送Request请求,接收Response响应 ItemPipleline模块:负责数据的处理 scrapy Engine负责模块间的通信 各个模块和scrapy引擎之间可以添加一层或多层中间件,负责对出入该模块的UR2IM对象进行处理。

scrapy的安装

参考官方文档,不再赘述。官方文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html

三、scrapy实战:50行代码爬取全站短视频

python的优雅之处在于能够让开发者专注于业务逻辑,花更少的时间在枯燥的代码编写调试上。scrapy无疑完美诠释了这一精神。

开发爬虫的一般步骤是:

确定要爬取的数据(item) 找到数据所在页面的url 找到页面间的链接关系,确定如何跟踪(follow)页面 那么,我们一步一步来。

既然是使用scrapy框架,我们先创建项目:

1 scrapy startproject DFVideo

紧接着,我们创建一个爬虫:

scrapy genspider -t crawl DfVideoSpider eastday.com

这是我们发现在当前目录下已经自动生成了一个目录:DFVideo

目录下包括如图文件:

spiders文件夹下,自动生成了名为DfVideoSpider.py的文件。

爬虫项目创建之后,我们来确定需要爬取的数据。在items.py中编辑:

import scrapy

class DfvideoItem(scrapy.Item):

define the fields for your item here like:

name = scrapy.Field()

video_url = scrapy.Field()#视频源url

video_title = scrapy.Field()#视频标题

video_local_path = scrapy.Field()#视频本地存储路径

接下来,我们需要确定视频源的url,这是很关键的一步。

现在许多的视频播放页面是把视频链接隐藏起来的,这就使得大家无法通过右键另存为,防止了视频别随意下载。

但是只要视频在页面上播放了,那么必然是要和视频源产生数据交互的,所以只要稍微抓下包就能够发现玄机。

这里我们使用fiddler抓包分析。

发现其视频播放页的链接类似于:video.eastday.com/a/180926221513827264568.html?index3lbt

视频源的数据链接类似于:mvpc.eastday.com/vyule/20180415/20180415213714776507147_1_06400360.mp4

有了这两个链接,工作就完成了大半:

在DfVideoSpider.py中编辑

-- coding: utf-8 --

import scrapy

from scrapy.loader import ItemLoader

from scrapy.loader.processors import MapCompose,Join

from DFVideo.items import DfvideoItem

from scrapy.linkextractors import LinkExtractor

from scrapy.spiders import CrawlSpider, Rule

import time

from os import path

import os

class DfvideospiderSpider(CrawlSpider):

name = ‘DfVideoSpider’

allowed_domains = [‘eastday.com’]

start_urls = [‘http://video.eastday.com/’]

rules = (

Rule(LinkExtractor(allow=r’video.eastday.com/a/\d+.html’),

callback=‘parse_item’, follow=True),

)

def parse_item(self, response):

item = DfvideoItem()

try:

item[“video_url”] = response.xpath(‘//input[@id=“mp4Source”]/@value’).extract()[0]

item[“video_title”] = response.xpath(‘//meta[@name=“description”]/@content’).extract()[0]

#print(item)

item[“video_url”] = ‘http:’ + item[‘video_url’]

yield scrapy.Request(url=item[‘video_url’], meta=item, callback=self.parse_video)

except:

pass

def parse_video(self, response):

文末有福利领取哦~

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)

五、Python练习题

检查学习结果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! g)

因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python) [外链图片转存中…(img-wcn1HuYC-1713178156410)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: