本文来源吾爱破解论坛
本帖最后由 null119 于 2018-12-18 08:44 编辑 QQ图片20181217231023.png (186.93 KB, 下载次数: 0)
下载附件
保存到相册
版本:
Python3.6.5
引用库:
re,requests,json,lxml
运行效果:
代码:
[Python] 纯文本查看 复制代码
#-*-coding:UTF-8-*- import re import requests import json from lxml import etree weburl =r"http://www.ygdy8.net" def getpage(url): #获取电影列表页面数 t= requests.get(url) t.encoding='gbk' t=''.join(re.findall("/(\d+)条",t.text)) sum=int(t) // 25 if int(t) % 25 != 0: sum+=1 return sum def getlist(url): #获取电影列表页各个电影URL t=requests.get(url) t.encoding='gbk' #html = etree.HTML(t.text) #murl = html.xpath('//*[@class="ulink"]/@href') murl = re.findall('(/html/.*?/.*?/\d+/\d+.html)" class="ulink"',t.text) #mname= html.xpath('//*[@class="ulink"]/text()') return murl def getdownurl(url): #获取电影页下载地址 t = requests.get(url) t.encoding = 'gbk' if len(re.findall('fdfddf"><a href="(.*?)"',t.text))>0 : ftpurl= re.findall('fdfddf"><a href="(.*?)"',t.text)[0] return ftpurl else: return '' def getdbdata(moivename): #获取豆瓣评分 dburl =r"http://api.douban.com/v2/movie/search?q="+moivename txt=requests.get(dburl) l=json.loads(txt.text) #dbid=l["subjects"][0]["id"] #dbweburl=l["subjects"][0]["alt"] if 'code' in l.keys(): return -1 else: dbpf=l["subjects"][0]["rating"]["average"] return dbpf def getgf(url): #获取高评分电影 for i in range(1,5): if i==1: t = requests.get(url+'.html') else: t = requests.get(url +'_'+ str(i) + '.html') t.encoding = 'gbk' tmp=re.findall('href="(http://www\.ygdy8\..*?/html/gndy/.*?/\d+/\d+\.html)',t.text) for j in tmp: durl=getdownurl(j) if durl != '': name = ''.join(durl).split('.') moivename = (name[5] + '[' + name[6] + name[7] + ']') dbpf = getdbdata(name[5]) if dbpf == -1: print(moivename,'下载地址:'+ durl) else: if dbpf > 7.9: print(moivename,'豆瓣评分:'+ str(dbpf),'下载地址:'+ durl) def getmoive(id,page): #获取指定版块指定页数的电影下载地址 if id < 3: pagenum=getpage(url[id]+'1.html') if pagenum < page: page=pagenum for i in range(1,page+1): tmpurl=getlist(url[id]+str(i)+'.html') k=0 for j in tmpurl: downurl=getdownurl(weburl+j) name=''.join(downurl).split('.') moivename=(name[5]+'['+name[6]+name[7]+']') dbpf=getdbdata(name[5]) if dbpf == -1: print(moivename,'下载地址:'+ downurl) else: print(moivename,'豆瓣评分:'+str(dbpf),'下载地址:'+downurl) k+=1 else: getgf(url[3]) #几个电影版块的URL url = [ #分类名称 id 'http://www.ygdy8.net/html/gndy/dyzz/list_23_', #最新电影 0 'http://www.ygdy8.net/html/gndy/china/list_4_', #国内电影 1 'http://www.ygdy8.net/html/gndy/oumei/list_7_', #欧美电影 2 'http://www.ygdy8.net/html/gndy/jddy/20160320/50510'#高分经典 3 ] if __name__=='__main__': getmoive(0,3) #getmoive(分类ID,获取页数) ps:每页是25部电影
下面是豆瓣评分查询无限制时的获取结果:
QQ截图20181218084350.png (202.05 KB, 下载次数: 0)
下载附件 保存到相册
注:代码默认是获取所有电影的豆瓣评分的,但豆瓣评分的查询API有时间限制,我在代码里没有加时间间隔,有需要的自己加一下,再就是如果有更懒的人,就直接用下面的这个吧,简单粗暴。
11111111111.png (130.03 KB, 下载次数: 1)
下载附件 保存到相册
下载积分: 吾爱币 -1 CB
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 调用百度api写的人脸融合
- 下一篇: 爬虫作品分享---渣渣网站模拟登录并改密