前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3爬电影天堂

python3爬电影天堂

作者头像
IT架构圈
发布2018-06-01 10:35:41
5640
发布2018-06-01 10:35:41
举报
文章被收录于专栏:IT架构圈IT架构圈
经常在里面用迅雷下电影天堂,为了让自己省事写了个爬虫按照排名下载地址
代码语言:javascript
复制
import requests
import re
#changepage用来产生不同页数的链接
def changepage(url,total_page):
    page_group = ['https://www.dygod.net/html/gndy/jddy/index.html']
    for i in range(2,total_page+1):
        link = re.sub('jddy/index','jddy/index_'+str(i),url,re.S)
        page_group.append(link)
    return page_group
#pagelink用来产生页面内的视频链接页面
def pagelink(url):
    base_url = 'https://www.dygod.net/html/gndy/jddy/'
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}
    req = requests.get(url , headers = headers)
    req.encoding = 'gbk'#指定编码,否则会乱码
    pat = re.compile('<a href="/html/gndy/jddy/(.*?)" class="ulink" title=(.*?)/a>',re.S)#获取电影列表网址
    reslist = re.findall(pat, req.text)
    finalurl = []
    for i in range(1,25):
        xurl = reslist[i][0]
        finalurl.append(base_url + xurl)
    return finalurl #返回该页面内所有的视频网页地址
#getdownurl获取页面的视频地址
def getdownurl(url):
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}
    req = requests.get(url , headers = headers)
    req.encoding = 'gbk'#指定编码,否则会乱码
    pat = re.compile('<a href="ftp(.*?)">ftp',re.S)#获取下载地址
    reslist = re.findall(pat, req.text)
    furl = 'ftp'+reslist[0]
    return furl
if __name__ == "__main__" :
    html = "https://www.dygod.net/html/gndy/jddy/index.html"
    print('你即将爬取的网站是:https://www.dygod.net/html/gndy/jddy/index.html')
    pages = input('请输入需要爬取的页数:')
    p1 = changepage(html,int(pages))
    with open ('电影天堂下载地址.lst','w') as f :
        j = 0
        for p1i in p1 :
            j = j + 1
            print('正在爬取第%d页,网址是 %s ...'%(j,p1i))
            p2 = pagelink(p1i)
            for p2i in p2 :
                p3 = getdownurl(p2i)
                if len(p3) == 0 :
                    pass
                else :
                    finalurl = p3
                    f.write(finalurl + '\n')
    print('所有页面地址爬取完毕!')

然后迅雷就可以直接导入了。(后缀为downlist或lst迅雷可以直接导入)!

正则表达式很重要,没有解析不出来的规则!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档