精华内容
下载资源
问答
  • 爬虫实战案例

    2020-10-23 16:43:12
    爬虫实战案例 新手练手题材 爬取梨视频的需求:想获取梨视频中科技类的最新视频 url = 'https://www.pearvideo.com/category_8' 爬取前先完成的基本操作 import requests from lxml import etree import re,os ...

    爬虫实战案例

    新手练手题材

    爬取梨视频的需求:想获取梨视频中科技类的最新视频

    url = 'https://www.pearvideo.com/category_8'
    

    爬取前先完成的基本操作

    import requests
    from lxml import etree
    import re,os
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
    }
    def get_msg(url):
        """获取每个视频对应的链接"""
        # 获取科技视频页面的内容
        text = requests.get(url, headers=headers).text
        # 将内容加载到etree对象中
        tree = etree.HTML(text)
        # xpath解析到最新视频的li标签中
        li_list = tree.xpath('//ul[@id="categoryList"]/li')
        video_list = []
        for li in li_list:
            video_url = li.xpath('./div/a/@href')[0]  # 视频的链接
            # 此处获取的id用来后面js文件中的video路径
            video_id = re.findall('video_(\d+)', video_url)[0]  
            # 视频的名字
            video_name = li.xpath('./div/a/div[2]/text()')[0]
        	# 将视频名字加id打包加入列表中
            dic = {
                'video_name': video_name,
                'video_id': video_id
            }
            video_list.append(dic)
        return video_list
    if __name__ == '__main__':
    	# todo:如果该目录下没有梨视频的文件夹,就创建一个新的文件夹
        if not os.path.exists('./梨视频'):
            os.mkdir('./梨视频')
        url = 'https://www.pearvideo.com/category_8'
        video_list = get_msg(url)
    

    下面将是反反爬的重点了!!!

    1. 首先我们先分析一下对应视频链接下的接受的信息
      在这里插入图片描述

    最近梨视频添加了新的反爬机制,因此视频链接不再存放在了https://www.pearvideo.com/video_****链接中,因此我们需要找到图中标有1的链接

    1. 要获取视频的动态链接,就需要向 https://www.pearvideo.com/videoStatus.jsp (标记2)发送请求,参数有两个
      1. contId:也就是上面保存的视频的id
      2. mrd:你可以不断刷新页面发现会一直更新,也就是random.random()
        ps:经过多次实验,mrd可以不用传入,可以忽略不看
    2. (标记3)有个Refer关联地址,这个地址必须加入头信息中,不然就会爬取不到
    ## 前面已经有headers,因此直接加进去或者再重写headers
    video_url1 = 'https://www.pearvideo.com/videoStatus.jsp'
        video_id1 = dic['video_id']
        video_name1 = dic["video_name"]
        print(video_name1,'正在下载。。。。')
        headers['Referer'] = 'https://www.pearvideo.com/video_'+video_id1  # 一定要加这句,反爬
        data = {
            'contId':video_id1,
            'mrd':str(random.random())
        }
        因为该链接返回的是json格式,所以获取response的json数据
        video_json = requests.get(video_url1,params=data, headers=headers).json()
    

    在这里插入图片描述

    {'resultCode': '1', 'resultMsg': 'success', 'reqId': '944f3765-1551-45f1-b382-99eb265b3356', 'systemTime': '1603437715179', 
        'videoInfo': {'playSta': '1', 'video_image': 'https://image1.pearvideo.com/cont/20201022/cont-1703049-12493630.jpg', 
        'videos': {'hdUrl': '', 'hdflvUrl': '', 'sdUrl': '', 'sdflvUrl': '', 
        'srcUrl': 'https://video.pearvideo.com/mp4/adshort/20201022/1603437715179-15443157_adpkg-ad_hd.mp4'}}}
    
    1. 获取的json数据中我们看到video_image和srcUrl的链接,再回到视频页面中的视频链接,总结一起
      在这里插入图片描述
        视频真实地址:https://video.pearvideo.com/mp4/adshort/20201022/cont-1703049-15443157_adpkg-ad_hd.mp4
        video_image地址:https://image1.pearvideo.com/cont/20201022/cont-1703049-12493630.jpg
        srcUrl地址:https://video.pearvideo.com/mp4/adshort/20201022/1603437000589-15443157_adpkg-ad_hd.mp4
    
    1. 从上面的三条地址很容易得发现规律,然后将下面两条地址整合成真实地址
    # todo:视频地址的最终版
        mp4_js = video_json['videoInfo']['videos']['srcUrl'] # 获取srcUrl地址
        img_js = video_json['videoInfo']['video_image']  # 获取video_image地址
        img_msg = img_js.split('/')[-1]
        # 获取img_js的一部分cont-1703049
        cont = re.findall('(.*?-.*?)-.*?',img_msg)[0]
        mp4_list = re.split('//|/',mp4_js)
        # 将后面的地址修改
        mp4_list[-1] = re.sub('\d+',cont,mp4_list[-1],count=1)  # 替换第一组的数字
        # 拼接成真实地址
        new_video = mp4_list[0]+ '//'+'/'.join(mp4_list[1:])
        content = requests.get(new_video,headers=headers).content
        with open(f'./梨视频/{video_name1}.mp4','wb') as f:
            f.write(content)
            print(video_name1,'下载完成....')
    
    1. 最后都是基本操作,就不多展示了!!
      将视频的二进制数据保存到本地
      我们可以用进程池或者线程池提高爬取的效率!!!
    展开全文
  • Python3网络爬虫实战案例教程
  • 视频讲解Python网络爬虫实战案例,总共分为5章:基础+实战+框架+分布式
  • 很不错的爬虫课程,适合小白入手。 Python3网络爬虫实战案例。 附送百度云不限速下载工具
  • Python爬虫实战案例-爬虫与文本分析.pptx
  • Python爬虫实战案例源码-批量爬取今日头条街拍美图
  • 2017年最新Python3.6网络爬虫实战案例5章
  • 在项⽬根⽬录下新建 main.py⽂件,⽤于调试from scrapy import cmdline cmdline.execute('scrapy crawl douyu'.split()) 执⾏程序py2 main.py 获取完整Python爬虫视频教程请点:python网络爬虫课程。

    1. items.pyclass DouyuspiderItem(scrapy.Item):

    name = scrapy.Field()# 存储照⽚的名字

    imagesUrls = scrapy.Field()# 照⽚的 url 路径

    imagesPath = scrapy.Field()# 照⽚保存在本地的路径

    2. spiders/douyu.pyimport scrapy

    import json

    from douyuSpider.items import DouyuspiderItem

    class DouyuSpider(scrapy.Spider):

    name = "douyu"

    allowd_domains = ["http://capi.douyucdn.cn"]

    offset = 0

    url = "http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&

    offset="

    start_urls = [url + str(offset)]

    def parse(self, response): # 返回从 json⾥获取 data 段数据集合

    data = json.loads(response.text)["data"] # 如果 data⾥⾯没有值,那么就直接退出函数

    #if not data:

    # return

    for each in data:

    item = DouyuspiderItem()

    item["name"] = each["nickname"]

    item["imagesUrls"] = each["vertical_src"]

    yield item

    self.offset += 20

    yield scrapy.Request(self.url + str(self.offset), callback =

    self.parse)

    3. 设置 setting.pyITEM_PIPELINES = {'douyuSpider.pipelines.ImagesPipeline': 1} # Images 的存放位置,之后会在 pipelines.py⾥调⽤

    IMAGES_STORE = "/Users/Power/lesson_python/douyuSpider/Images"

    # user-agent

    USER_AGENT = 'DYZB/2.290 (iPhone; iOS 9.3.4; Scale/2.00)'

    4. pipelines.pyimport scrapy

    import os

    from scrapy.pipelines.images import ImagesPipeline

    from scrapy.utils.project import get_project_settings

    class ImagesPipeline(ImagesPipeline):

    IMAGES_STORE = get_project_settings().get("IMAGES_STORE")

    def get_media_requests(self, item, info):

    image_url = item["imagesUrls"]

    yield scrapy.Request(image_url)

    def item_completed(self, results, item, info): # 固定写法,获取图⽚路径,同时判断这个路径是否正确,如果正确,就 放 到 image_path⾥,ImagesPipeline 源码剖析可⻅

    image_path = [x["path"] for ok, x in results if ok]

    os.rename(self.IMAGES_STORE + "/" + image_path[0], self.IMA

    GES_STORE + "/" + item["name"] + ".jpg")

    item["imagesPath"] = self.IMAGES_STORE + "/" + item["name"]

    return item

    #get_media_requests 的作⽤就是为每⼀个图⽚链接⽣成⼀个 Request 对象,这

    ⽅法的输出将作为 item_completed 的输⼊中的 results,results 是⼀个元组,

    每 个元组包括 (success, imageinfoorfailure) 。如果 success=true ,

    imageinfo or_failure 是⼀个字典,包括 url/path/checksum 三个 key。

    在项⽬根⽬录下新建 main.py⽂件,⽤于调试from scrapy import cmdline

    cmdline.execute('scrapy crawl douyu'.split())

    执⾏程序py2 main.py

    获取完整Python爬虫视频教程请点:python网络爬虫课程。

    展开全文
  • 最新Python3.6网络爬虫实战案例5章(基础+实战+框架+分布式)精品高清视频教程附讲义源码资料齐全 34课,学习的好帮手
  • 2017年最新Python3.6网络爬虫实战案例基础+实战+框架+分布式高清视频教程 python 爬虫 anaconda
  • 2018-最新Python3 .6网络爬虫实战案例5章精品高清视频教程附讲义源码资料齐全
  • 18个Python爬虫实战案例

    万次阅读 2018-12-21 16:55:37
    https://blog.csdn.net/Ch97CKd/article/details/80823328

    https://blog.csdn.net/Ch97CKd/article/details/80823328

    展开全文
  • 18个Python爬虫实战案例(已开源)

    万次阅读 多人点赞 2018-06-26 08:20:00
    目录爬虫小工具文件下载小助手爬虫实战笔趣看小说下载VIP视频下载百度文库文章下载_rev1百度文库文章下载_rev2《帅啊》网帅哥图片下载构建代理IP池《火影忍者》漫画下...

    目录

    • 爬虫小工具

      • 文件下载小助手

    • 爬虫实战

      • 笔趣看小说下载

      • VIP视频下载

      • 百度文库文章下载_rev1

      • 百度文库文章下载_rev2

      • 《帅啊》网帅哥图片下载

      • 构建代理IP池

      • 《火影忍者》漫画下载

      • 财务报表下载小助手

      • 一小时入门网络爬虫

      • 抖音App视频下载_rev1

      • 抖音App视频下载_rev2

      • 抖音App视频下载_rev3

      • GEETEST验证码破解

      • 12306抢票小助手

      • 百万英雄答题辅助系统

      • 网易云音乐批量下载

      • B站视频和弹幕批量下载

    • 其它

    爬虫小工具

    • downloader.py:文件下载小助手

    一个可以用于下载图片、视频、文件的小工具,有下载进度显示功能。稍加修改即可添加到自己的爬虫中。

    动态示意图:

    640?wx_fmt=gif

    爬虫实战

    1、biqukan.py:《笔趣看》盗版小说网站,爬取小说工具

    第三方依赖库安装:

    
     

    pip3 install beautifulsoup4

    使用方法:

    
     

    python biqukan.py

    2、video_downloader:爱奇艺等主流视频网站的VIP视频破解助手(暂只支持PC和手机在线观看VIP视频!)

    感谢Python3二维码生成器作者:https://github.com/sylnsfar/qrcode

    编译好的软件下载连接:https://pan.baidu.com/s/1bqSTNJL 密码:p8bs

    解压密码:cuijiahua.com

    无需Python3环境,在Windows下,解压即用!软件使用方法

    源码可查看video_downloader,运行源码需要搭建Python3环境,并安装相应第三方依赖库:

    video_downloader文件夹下,安装第三方依赖库:

    
     

    pip3 install -r requirements.txt

    使用方法:

    
     

    python movie_downloader.py

    运行环境:

    • Windows, Python3

    • Linux, Python3

    • Mac, Python3

    3、baiduwenku.py: 百度文库word文章爬取

    原理说明:http://blog.csdn.net/c406495762/article/details/72331737
    代码不完善,没有进行打包,不具通用性,纯属娱乐,以后有时间会完善。

    4、shuaia.py: 爬取《帅啊》网,帅哥图片

    《帅啊》网URL:http://www.shuaia.net/index.html

    原理说明:http://blog.csdn.net/c406495762/article/details/72597755

    第三方依赖库安装:

    
     

    pip3 install requests beautifulsoup4

    5、daili.py: 构建代理IP池

    原理说明:http://blog.csdn.net/c406495762/article/details/72793480

    6、carton: 使用Scrapy爬取《火影忍者》漫画

    代码可以爬取整个《火影忍者》漫画所有章节的内容,保存到本地。更改地址,可以爬取其他漫画。保存地址可以在settings.py中修改。

    动漫网站:http://comic.kukudm.com/

    原理说明:http://blog.csdn.net/c406495762/article/details/72858983

    7、hero.py: 《王者荣耀》推荐出装查询小助手

    网页爬取已经会了,想过爬取手机APP里的内容吗?

    原理说明:http://blog.csdn.net/c406495762/article/details/76850843

    8、financical.py: 财务报表下载小助手

    爬取的数据存入数据库会吗?《跟股神巴菲特学习炒股之财务报表入库(MySQL)》也许能给你一些思路。

    原理说明:http://blog.csdn.net/c406495762/article/details/77801899

    动态示意图:

    640?wx_fmt=gif

    9、one_hour_spider:一小时入门Python3网络爬虫。

    原理说明:

    • 知乎:https://zhuanlan.zhihu.com/p/29809609

    • CSDN:http://blog.csdn.net/c406495762/article/details/78123502

    本次实战内容有:

    • 网络小说下载(静态网站)-biqukan

    • 优美壁纸下载(动态网站)-unsplash

    • 爱奇艺VIP视频下载

    10、douyin.py:抖音App视频下载

    抖音App的视频下载,就是普通的App爬取。

    原理说明:个人网站:http://cuijiahua.com/blog/2018/03/spider-5.html

    11、douyin_pro:抖音App视频下载(升级版)

    抖音App的视频下载,添加视频解析网站,支持无水印视频下载,使用第三方平台解析。

    原理说明:个人网站:http://cuijiahua.com/blog/2018/03/spider-5.html

    12、douyin_pro_2:抖音App视频下载(升级版2)

    抖音App的视频下载,添加视频解析网站,支持无水印视频下载,通过url解析,无需第三方平台。

    原理说明:个人网站:http://cuijiahua.com/blog/2018/03/spider-5.html

    动态示意图:

    640?wx_fmt=gif

    13、geetest.py:GEETEST验证码破解

    爬虫最大的敌人之一是什么?没错,验证码!Geetest作为提供验证码服务的行家,市场占有率还是蛮高的。遇到Geetest提供的滑动验证码怎么破?授人予鱼不如授人予渔,接下来就为大家呈现本教程的精彩内容。

    原理说明:http://www.cuijiahua.com/blog/2017/11/spider_2_geetest.html

    动态示意图:

    640?wx_fmt=gif

    14、12306.py:用Python抢火车票简单代码

    可以自己慢慢丰富,蛮简单,有爬虫基础很好操作,没有原理说明。

    15、baiwan:百万英雄辅助答题

    效果图:

    640?wx_fmt=gif

    原理说明:http://cuijiahua.com/blog/2018/01/spider_3.html

    功能介绍:

    • 服务器端,使用Python(baiwan.py)通过抓包获得的接口获取答题数据,解析之后通过百度知道搜索接口匹配答案,将最终匹配的结果写入文件(file.txt)。

    • 手机抓包不会的朋友,可以看下我的早期手机APP抓包教程。

    • Node.js(app.js)每隔1s读取一次file.txt文件,并将读取结果通过socket.io推送给客户端(index.html)。

    • 亲测答题延时在3s左右。

    • 声明:没做过后端和前端,花了一天时间,现学现卖弄好的,javascript也是现看现用,百度的程序,调试调试而已。可能有很多用法比较low的地方,用法不对,请勿见怪,有大牛感兴趣,可以自行完善。

    16、Netease:根据歌单下载网易云音乐

    效果图:

    640?wx_fmt=gif

    功能介绍:根据music_list.txt文件里的歌单的信息下载网易云音乐,将自己喜欢的音乐进行批量下载。

    17、bilibili:B站视频和弹幕批量下载

    使用说明:

    
     

       python bilibili.py -d 猫 -k 猫 -p 10

    三个参数:
           -d    保存视频的文件夹名
           -k    B站搜索的关键字
           -p    下载搜索结果前多少页

    欢迎Star,Pull requests,项目地址,点击【阅读原文】

    
     

    重磅!码农突围-技术交流群已成立

     

    扫码可添加码农突围助手,可申请加入码农突围大群和细分方向群,细分方向已涵盖:Java、Python、机器学习、大数据、人工智能等群。

    一定要备注:开发方向+地点+学校/公司+昵称(如Java开发+上海+拼夕夕+猴子),根据格式备注,可更快被通过且邀请进群

     

    ▲长按加群

     

    
    
    

    最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

    获取方式:点“在看”,关注公众号并回复 BAT 领取,更多内容陆续奉上。

    如有收获,点个在看,诚挚感谢明天见(。・ω・。)ノ♡

    展开全文
  • Python3网络爬虫实战案例,百度云下载,截至2018年3月资源继续有效,如果失效回复留言活着私信给我,单独给你发。视频总大小7.7G
  • 最新Python3网络爬虫实战案例高清视频教程
  • 课程名称2017 Python3网络爬虫实战案例,资源教程下载课程介绍说到python首当其冲的当然是爬虫了,这部教程是2017年5月份价值699元的最新爬虫实战教程。当然下面会给出本教程完整高清的视频下载地址源码也齐全,当然...
  • 2017年老男孩最新全栈python第2期视频教程 全套完整版(92天) 2017最新Python3.6网络爬虫实战案例(基础+实战+框架+分布式)全套视频教程 附源码
  • 最新Python3.6网络爬虫实战案例5章(基础+实战+框架+分布式)精品高清视频教程附讲义源码资料齐全 34课
  • 最新Python3.6网络爬虫实战案例5章(基础+实战+框架+分布式)精品高清视频教程附讲义源码资料齐全 34课 文件太大只能传度盘,文件里面是链接,永不和谐
  • Python3网络爬虫实战案例【温馨提示:1. 你可以在PC端浏览器或者微信收藏该页面,以方便你快速找到这个课程;2. 课程相关资料&QQ会员群可在课程PC端公告查看下载;3.购买课程后,点(课时)列表即可观看视频 】适宜...
  • 最新Python3.6网络爬虫实战案例5章(基础+实战+框架+分布式)精品高清视频教程附讲义源码资料齐全 34课 压缩
  • 这个案例的视频地址在这里 https://v.douyu.com/show/a2JEMJj3e3mMNxml 项目目标 爬取喜马拉雅音频数据 受害者地址 https://www.ximalaya.com/ 本文知识点: 1、系统分析网页性质 2、多层数据解析 3、海量音频数据...
  • 推荐18个Python爬虫实战案例

    千次阅读 2021-01-20 13:52:00
    目录爬虫小工具文件下载小助手爬虫实战笔趣看小说下载VIP视频下载百度文库文章下载_rev1百度文库文章下载_rev2《帅啊》网帅哥图片下载构建代理IP池《火影忍者》漫画下载财务报表下载小...
  • 上一篇文章见java网络爬虫核心原理。 一、Java IO流(input,output)   我们知道计算机是用来处理数据的。所有的程序,多媒体资源,在计算机内部都是以二进制形式存放的(本质是电荷的有无,磁场的有无,高低电压...
  • Python爬虫实战案例:爬取新闻资讯

    千次阅读 2020-07-11 21:54:22
    一个简单的Python资讯采集案例,列表页到详情页,到数据保存,保存为txt文档,网站网页结构算是比较规整,简单清晰明了,资讯新闻内容的采集和保存! 点击加群,免费领取Python资料 资料就放在群文件里等你来...
  • 爬虫是一段定向抓取相关网页资源的程序或脚本,Python爬虫是用Python编程语言实现的网络爬虫,相较于其他语言,Python内的大量内置包可以轻松实现网络爬虫功能。 PS:如有需要Python学习资料的小伙伴可以私信我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,226
精华内容 4,490
关键字:

爬虫实战案例

爬虫 订阅