简单爬虫案例

电影天堂是国内较大的电影在线观看和下载平台。主要有迅雷下载和快车下载和电驴以及手机视频格式下载。数据已经达到超出100多万部资源,千万小时时长。还能提供在线观看和下载最新的国内外电影和连续剧的服务。电影天堂提供其他剧情电影,大多都是都是高清电影,保持每天海量数据的更新。

image-20181014215403051

1. html代码分析

  • 列表页面url分析

image-20181014221503299

  • 内容页下载链接地址分析

image-20181014222650748

2. 正则分析

  • 分析列表页中的 电影的url地址

<a href=\"(.*)\" class=\"ulink\">(.*)</a>

  • 分析内容页的下载地址

\"><a href=\"(.*)\">(.*?)</a></td>

3. 实现效果

pc1

4. 代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import re
import urllib.request
from pymysql import *


def get_movie_link():
    """获取电影下载链接"""
    url = 'http://www.dytt8.net/html/gndy/rihan/list_6_2.html'
    # 获取网页下载页面
    file = urllib.request.urlopen(url)
    # 读取全部
    file_content = file.read()
    # 获取下载页面的链接
    link_list = re.findall(r'<a href="(.*)" class="ulink">(.*)</a>', file_content.decode("GBK"))
    # 定义字典保存电影连接
    film_link = {}
    for num,i  in enumerate(link_list):
        # 访问下载页面 i[0]为下载页面的链接 i[1]为电影名
        file = urllib.request.urlopen("http://www.dytt8.net" + i[0])
        # 获取下载页面html
        data = file.read()
        # 获取下载页面中的电影下载链接 ret为列表 ret[0]为电影下载链接
        ret = re.findall(r'.*"><a href="(.*)">', data.decode("GBK"))
        # 保存到file_link中
        film_link[i[1]] = ret[0]

        print("已经加载电影数量%d" % num)

    return film_link


if __name__ == '__main__':
    # 获取电影下载链接
    movie_link = get_movie_link()

    for name, link in movie_link.items():
        print("电影名字:", name, "下载链接:", link)

运行效果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
已经加载电影数量0
已经加载电影数量1
已经加载电影数量2
已经加载电影数量3
已经加载电影数量4
已经加载电影数量5
已经加载电影数量6
已经加载电影数量7
已经加载电影数量8
已经加载电影数量9
已经加载电影数量10
已经加载电影数量11
已经加载电影数量12
已经加载电影数量13
已经加载电影数量14
已经加载电影数量15
已经加载电影数量16
已经加载电影数量17
已经加载电影数量18
已经加载电影数量19
已经加载电影数量20
已经加载电影数量21
已经加载电影数量22
已经加载电影数量23
已经加载电影数量24
电影名字: 2018年悬疑惊悚《幻视/似曾相識》BD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg90.dydytt.net:8368/阳光电影www.ygdy8.com.幻视.BD.720p.韩语中字.mkv
电影名字: 2018年爱情《伊藤君A到E电影版》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg90.dydytt.net:8365/阳光电影www.ygdy8.com.伊藤君A到E.BD.720p.日语中字.mkv
电影名字: 2018年剧情悬疑《不能犯》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg90.dydytt.net:8364/阳光电影www.ygdy8.com.不能犯.BD.720p.日语中字.mkv
电影名字: 2018年喜剧《钱袋/抢钱对决》BD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:8252/阳光电影www.ygdy8.com.钱袋.BD.720p.韩语中字.mkv
电影名字: 2015年动作《女杀手KIRI:血腥复仇》HD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7249/阳光电影www.ygdy8.com.女杀手KIRI:血腥复仇.HD.720p.日语中字.mkv
电影名字: 2018年悬疑《爱上谎言的女人》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg72.dydytt.net:8250/阳光电影www.ygdy8.com.爱上谎言的女人.BD.720p.日语中字.mkv
电影名字: 2018年喜剧《谎话连篇》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:8248/阳光电影www.ygdy8.com.谎话连篇.BD.720p.日语中字.mkv
电影名字: 2017年动画《烟花动画版》BD国日双语中字 下载链接: ftp://ygdy8:ygdy8@yg90.dydytt.net:8358/阳光电影www.ygdy8.com.烟花动画版.BD.720p.国日双语中字.mkv
电影名字: 2017年喜剧运动《恋爱回旋》BD国日双语中字 下载链接: ftp://ygdy8:ygdy8@yg72.dydytt.net:8239/阳光电影www.ygdy8.com.恋爱回旋.BD.720p.国日双语中字.mkv
电影名字: 2018年动作《毒战韩国版》BD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:3099/阳光电影www.ygdy8.com.毒战韩国版.BD.720p.韩语中字.mkv
电影名字: 2017年剧情《最后的食谱麒麟之舌的记忆》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg90.dydytt.net:8345/阳光电影www.ygdy8.com.最后的食谱麒麟之舌的记忆.BD.720p.日语中字.mkv
电影名字: 2016年惊悚喜剧《犯罪女王》HD国语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7221/阳光电影www.ygdy8.com.犯罪女王.HD.720p.韩语中字.mkv
电影名字: 2017年剧情《薙刀社青春日记》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:3088/阳光电影www.ygdy8.com.薙刀社青春日记.BD.720p.日语中字.mkv
电影名字: 冒险奇幻动画《地海传说》BD国粤日三语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7202/阳光电影www.ygdy8.com.地海传说.BD.720p.国粤日三语中字.mkv
电影名字: 2017年喜剧《齐木楠雄的灾难真人版》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:3083/阳光电影www.ygdy8.com.齐木楠雄的灾难真人版.BD.720p.日语中字.mkv
电影名字: 2017年剧情《最后的踢踏舞》HD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:4071/阳光电影www.ygdy8.com.最后的踢踏舞.HD.720p.日语中字.mkv
电影名字: 2017年动作《极恶非道3》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:3079/阳光电影www.ygdy8.com.极恶非道3.BD.720p.日语中字.mkv
电影名字: 2017年悬疑《她不知道名字的那些鸟儿》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7201/阳光电影www.ygdy8.com.她不知道名字的那些鸟儿.BD.720p.日语中字.mkv
电影名字: 2017年剧情《准备》BD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg90.dydytt.net:8329/阳光电影www.ygdy8.com.准备.BD.720p.韩语中字.mkv
电影名字: 2017年喜剧《恋爱回旋》HD国日双语中字 下载链接: ftp://ygdy8:ygdy8@yg72.dydytt.net:8195/阳光电影www.ygdy8.com.恋爱回旋.HD.720p.国日双语中字.mkv
电影名字: 2018年恐怖《昆池岩/鬼病院:灵异直播》BD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7198/阳光电影www.ygdy8.com.昆池岩.BD.720p.韩语中字.mkv
电影名字: 2017年剧情悬疑《摇曳的心》BD日语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:8197/阳光电影www.ygdy8.com.摇曳的心.BD.720p.日语中字.mkv
电影名字: 2014年古装动作《朝鲜美女三剑客》HD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7197/阳光电影www.ygdy8.com.朝鲜美女三剑客.HD.720p.韩语中字.mkv
电影名字: 2018年惊悚剧情《钱袋》BD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:7196/阳光电影www.ygdy8.com.钱袋.BD.720p.韩语中字.mkv
电影名字: 2017年惊悚《石造住宅杀人案》HD韩语中字 下载链接: ftp://ygdy8:ygdy8@yg45.dydytt.net:8196/阳光电影www.ygdy8.com.石造住宅杀人案.HD.720p.韩语中字.mkv

Process finished with exit code 0

练一练

image-20180618232958759

字符串为:

1
<div class="LazyLoad is-visible DyImg DyListCover-pic"><img src="https://rpic.douyucdn.cn/asrpic/190827/7255777_526583_708c5_2_1048.jpg/webpdy1" class="DyImg-content is-normal "></div>

请提取url地址

参考答案

1
2
3
4
5
6
7
8
import re
str = """<div class="LazyLoad is-visible DyImg DyListCover-pic"><img src="https://rpic.douyucdn.cn/asrpic/190827/7255777_526583_708c5_2_1048.jpg/webpdy1" class="DyImg-content is-normal "></div>"""
# 匹配多个数字
result = re.search("src=\"(.*?)\"", str)
if result:
    print(result.group(1))
else:
    print("匹配失败~!")

image-20180706232953398

修改为非贪婪模式:

image-20180706232832567