寒心烟雨情 发表于 2018-11-26 21:10

python对影视资源采集

本帖最后由 寒心烟雨情 于 2018-11-26 21:13 编辑

给大家分享一些源码,有需要的可以学习一下。

花了点时间对几个影视资源网采集,然后对接公众号,用户可以在微信回复影视名,然后程序去网上搜索,再把搜索结果返回给用户。

这里我分享一个采集模块,主程序就不发出来了,其他几个模块也大同小异,学会一个其他也不难了。

采集简单思路:

1、网站以post请求提交数据。

2、提取搜索到的影视资源,并判断是否搜索到资源。


其他看注释吧!我已经把不容易看懂的注释了。

import requests,re

headers = {"Referer": "http://yongjiuzy.net/",
            "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
def zzyz_cj(wd):
    url = "(某网站)"# 影视资源站采集      线路3
    key = wd         # 这个参数是搜索的资源名
    data = {"wd": key, "submit":"search"}
    text = (requests.post(url, data=data, headers=headers).text) .encode("ISO-8859-1").decode("utf-8")#里面以post提交请求
    url_list = re.findall('<li><span class="tt">(.*?)</li>', text, re.S)    #提取搜索到的影视资源
    if (len(url_list) == False):            #判断是否搜索到影视资源
      return ("没有搜索到相关影片!")
    else:
      a_url = re.findall('<a href="(.*?)".*?', url_list, re.S)      #这里只提取第一条搜索到的链接
      url_1 = ("(某网站)" + a_url)# 这里提取到主目标页面
      text = (requests.get(url_1).text).encode("ISO-8859-1").decode("utf-8")   #这里还有一次get请求
      h2 = re.findall('<h2>(.*?)</h2> ', text, re.S)             #提取影视标题
      re_text = re.findall('<li><input type="checkbox".*?/>(.*?)</li>', text, re.S)# 提取播放链接
      url_list = []
      url_list.append(h2 + "\n")
      for for_url in re_text:
            url_sp = (for_url.split("$"))
            fh_url = requests.get("http://api.kks.me/api.php?url=" + url_sp, headers=headers).text# 短网址转换,简洁链接和防红
            url_list.append(url_sp + fh_url + "\n")
      url_str = "".join(url_list)   #将列表转换为字符串
      return (url_str)



这里我截了效果图:

gxq229 发表于 2020-1-30 23:29

感谢分享,不过你的源码我放到python里运行不了,“永久资源站” 的搜索功能用这个方法不行,我重新修改了一下,用的是ok资源网,由于我还不知道怎么对接公众号,所以只能用控制台输出结果了,我刚学python才几天。。。
import requests, re


headers = {"Referer": "https://api.okzy.tv/",
         "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}


def zzyz_cj(wd):
    url = "https://api.okzy.tv/"# 影视资源站采集      线路3
    key = wd# 这个参数是搜索的资源名
    data = {"wd": key, "submit": "search"}
    text = requests.post(url, data=data, headers=headers).text# 里面以post提交请求
    url_list = re.findall('<span class="tt">', text, re.S)# 提取搜索到的影视资源
    if len(url_list) == 0:# 判断是否搜索到影视资源
      return "没有搜索到相关影片!"
    else:
      a_url = re.findall('<span class="xing_vb4"><a href="(.*?)".*?', text, re.S)# 这里只提取第一条搜索到的链接
      url_1 = ("https://api.okzy.tv/" + a_url)# 这里提取到主目标页面
      text = requests.get(url_1).text# 这里还有一次get请求
      # print(text)
      h2 = re.findall('<h2>(.*?)</h2>', text, re.S)# 提取影视标题
      re_text = re.findall('<li><input type="checkbox".*?/>(.*?)</li>', text, re.S)# 提取播放链接
      url_list = []
      url_list.append(h2 + "\n")
      for for_url in re_text:
            url_sp = (for_url.split("$"))
            # fh_url = requests.get("http://api.kks.me/api.php?url=" + url_sp, headers=headers).text# 短网址转换,简洁链接和防红
            url_list.append(url_sp + "\n")
      url_str = "".join(url_list)# 将列表转换为字符串
      return url_str


if __name__ == '__main__':
    wd1 = input('请输入电影名称:')
    pt = zzyz_cj(wd1)
    print(pt)

寒心烟雨情 发表于 2018-11-26 21:45

leonwqhb 发表于 2018-11-26 21:38
这个类似那种和淘宝客一样的是吗??
发个关键字然后就有相应的反馈

淘宝客我不怎么清楚,但也差不多,搜索关键词后,然后就去网站搜索回来,然后把搜索结果给用户

GalaxyMimi 发表于 2018-11-26 21:27

学习一下

Amd794 发表于 2018-11-26 21:30

感谢楼主分享,支持一下!

leonwqhb 发表于 2018-11-26 21:38

这个类似那种和淘宝客一样的是吗??
发个关键字然后就有相应的反馈

凌乱的思绪 发表于 2018-11-26 21:53

支持分享原创感谢

sdyxrbl 发表于 2018-11-26 21:58

怎么对接到微信公众号呢?

追寻星辰大海 发表于 2018-11-26 22:05

学习学习

虔诚 发表于 2018-11-26 22:16

wangqiustc 发表于 2018-11-26 22:17

学习一下
页: [1] 2 3
查看完整版本: python对影视资源采集