用python实现苹果cms电影网站的自动采集
苹果cms电影网站的自动采集用苹果cms搭建的电影网站,采集影片可以通过后台的自定义资源库链接资源网站。这种方式简单易操作。但是问题是采集的时候只有两种属性可以选择,一是可以选择影片类型,二是可以有限的选择影片更新时间。这样操作的结果就是无法区分质量,良秀不齐,好片烂片一键全踩。为了解决这个问题,用python编了个小程序实现按指定影片名字批量采集。第一部分是个爬虫程序,从豆瓣影片排行榜爬取各个类型影片好评率排在前30%的影片,也可以只选前10%或20%。把影片名称存为“***.Txt”文件。
第二部分采集程序, 按照影片名称逐个搜索并采集到自己的电影网站上。
这样可以保证自己的电影库只采集排名靠前的好影片,片不在多而在精。以下为采集部分程序的源码。仅供参考。# 模拟苹果cms后台自定义资源库里的查询。 提取数据用正则表达式和xpath# 目前是精确查询,如查“蛇”,不会把其他带“蛇”字的影片采集到。也可改为模糊查询import osimport randomimport timeimport requestsfrom lxml import etreeimport redef getmnames(): # 从文件中导出电影名列表 with open("e:\dc\dbrate\影片名.txt", 'r', encoding='utf-8')as f: mname = f.readline() while mname: getid_1156(mname.replace('\n', '')) mname = f.readline()def getid_1156(moviename): # 本函数调用苹果cms后台-自定义资源库-1156资源-[查询按钮],按名称查询电影,如果查到就抽取电影的id, 然后直接按id采集电影 global colsum path = r'e:\dc\anmolive\\' # 指定一个保存文字和图片的文件夹, dc意思是datacenter folder = os.path.exists(path) if not folder: # 判断是否存在文件夹如果不存在则创建为文件夹 os.makedirs(path) # makedirs 创建文件时如果路径不存在会创建这个路径 # 构造指定起始点的页面的网址 url = 'http://anmo.live/login.php/admin/collect/api.html?ac=list&cjflag=59a9b8208b4b3f76ab1f5a83cdf&' \ 'cjurl=http%3A%2F%2Fcj.1156zy.com%2Finc%2Fapi.php&h=&t=&ids=&wd=' + moviename + '&type=1&mid=1¶m=&page=1&limit=' # 1156资源网的cookie cookies_1156 = {'UM_distinctid': '172bc03c10f-06e3278c369-f7d123e-1fa400-172bc430d3ec', '__cfduid': 'da522209aa7174fd411d5d1469f1596271935', 'PHPSESSID': '7bee1f791647ec61ed93e1d1c11a13a3', 'admin_id': '1', 'admin_name': '×××', 'admin_check': '4bf45d54e07ea484d09214f2fda', 'CNZZDATA1277635278': '784101942-1596271233-http%253A%252F%252Fanmo.live%252F%7C1596415349'} headers = get_headers() try: print('正在查找' + moviename) r = requests.get(url, headers=headers, cookies=cookies_1156) except: print("Connection refused by the server..") time.sleep(5) cont = r.content # r.content返回的是bytes型的数据 contstr = str(cont, 'utf-8') # 转成utf-8字符串#上边的请求会返回所有包含查询词的名字,如搜美女,返回资源站所有带美女两字的电影名, reg_rul = r'
页:
[1]