经验大分享:PYTHON爬取66影视的电影下载链接,有搜索功能

简介: 经验大分享:PYTHON爬取66影视的电影下载链接,有搜索功能

本片代码亮点在于使用BeautifulSoup的select功能,可以直接根据数据在html页面中的层级标签来获取数据。

# -- coding=gb18030 --

author = 'vincent'

import sys

import urllib2

import urllib

import cookielib

from bs4 import BeautifulSoup

class Spider66ys:

headers = None

home_url = None

def init(self):

self.headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:50.0) Gecko/20100101 Firefox/50.0'

}//代码效果参考:http://www.ezhiqi.com/zx/art_7500.html

self.home_url = ""

# 获取网页信息

def get_html(self, url):

print "正在获取网页【", url, "】的信息..."

if len(url) == 0:

print "Input url is null!"

sys.exit(0)

request = urllib2.Request(url, headers=self.headers)

response = urllib2.urlopen(request)

html = response.read()

# print "获取首页信息(", url, ")完毕."

return html

# 在电影页面下获取电影的下载链接

def get_download_url(self, film):

print "开始从网页【", film【0】, "】中获取电影【", film【1】, "】的下载链接..."

html = self.get_html(film【0】)

# fp = open("film.html", "w")

# fp.write(html)

# fp.close()

soup = BeautifulSoup(html, "lxml", from_encoding="gb18030")

# print soup.prettify()

results = soup.select("html > body > div.wrap > div.mainleft \

> div.contentinfo > div#text > table > tbody > tr > td > a")

for result in results:

film.append(result【'href'】)

# 获取最新更新电影

def get_new_update(self):

new_film_list = 【】

print "正在获取【", self.home_url, "】更新电影..."

html = self.get_html(self.home_url)

# fp = open("66ys.html", "w")

# fp.write(html)

# fp.close()

soup = BeautifulSoup(html, "lxml", from_encoding="gb18030")

results = soup.select("html > body > div.wrap > div.tnlist > ul > li > a")

for result in results:

film = 【】

film.append(result【'href'】)

film.append(result.getText().encode('gb18030').strip())

self.get_download_url(film)

new_film_list.append(film)

return new_film_list

# 根据关键字在66影视上搜索电影

def search_film(self, content):

search_film_list = 【】

search_url = self.home_url + "/e/search/index.php"

print "开始搜索电影【", content, "】..."

# print search_url

postDict = {

"keyboard": content,

"show": "title,smalltext",

"submit": "",

"tbname": "Article",

"tempid": "1"

}//代码效果参考:http://www.ezhiqi.com/bx/art_7199.html

postData = urllib.urlencode(postDict)

# print postData

cookie_jar = cookielib.LWPCookieJar()

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))

urllib2.install_opener(opener)

request = urllib2.Request(search_url, postData, headers=self.headers)

response = urllib2.urlopen(request)

opener.open(request)

html = response.read()

# fp = open("search.html", "w")

# fp.write(html)

# fp.close()

# print content

soup = BeautifulSoup(html, "lxml", from_encoding="gb18030")

results = soup.select("html > body > table.tableborder > tr > td > div > b")

if len(results) == 1:

print "没有搜索到相关的内容"

return None

results = soup.select("html > body > div > div.wrap > div.mainleft > div.channellist > div.listBox > ul > li \

div.listInfo > h3 > a")

# print results

for result in results:

film = 【】

film.append(result【'href'】)

film.append(result.getText().encode('gb18030').strip())

self.get_download_url(film)

search_film_list.append(film)

print "共搜索到【", len(results), "】部电影。"

return search_film_list

if name == "main":

spider = Spider66ys()

# new_film_list = spider.get_new_update()

# for film in new_film_list:

# for info in film:

# print info, "\t"

# print ""

content = "冰与火之歌"

search_film_list = spider.search_film(content)

for film in search_film_list:

print film【1】, ":"

for info in film【2:】:

print info

print "-"*200

心有猛虎,细嗅蔷薇

相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
249 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
7天前
|
Python
二分查找变种大赏!Python 中那些让你效率翻倍的搜索绝技!
二分查找是一种高效的搜索算法,适用于有序数组。其基本原理是通过不断比较中间元素来缩小搜索范围,从而快速找到目标值。常见的变种包括查找第一个等于目标值的元素、最后一个等于目标值的元素、第一个大于等于目标值的元素等。这些变种在实际应用中能够显著提高搜索效率,适用于各种复杂场景。
25 9
|
8天前
|
算法 数据处理 开发者
超越传统:Python二分查找的变种策略,让搜索效率再上新台阶!
本文介绍了二分查找及其几种Python实现的变种策略,包括经典二分查找、查找第一个等于给定值的元素、查找最后一个等于给定值的元素以及旋转有序数组的搜索。通过调整搜索条件和边界处理,这些变种策略能够适应更复杂的搜索场景,提升搜索效率和应用灵活性。
24 5
|
8天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
23 1
|
27天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
28天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
Python
Python 三方库下载安装
Python 三方库下载安装
26 1
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
348 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
网络协议 Python
|
1月前
|
数据采集 Python
Python爬虫-爬取全国各地市的邮编链接
Python爬虫-爬取全国各地市的邮编链接