经验大分享: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

心有猛虎,细嗅蔷薇

相关文章
|
7天前
|
Python
下载python所有的包 国内地址
下载python所有的包 国内地址
|
2月前
|
Python
python 找到并去除文本中的全部链接
这篇文章提供了一个使用Python正则表达式找到并删除文本中所有链接的代码示例。
|
6天前
|
API Python
使用Python requests库下载文件并设置超时重试机制
使用Python的 `requests`库下载文件时,设置超时参数和实现超时重试机制是确保下载稳定性的有效方法。通过这种方式,可以在面对网络波动或服务器响应延迟的情况下,提高下载任务的成功率。
21 1
|
6天前
|
大数据 UED 开发者
实战演练:利用Python的Trie树优化搜索算法,性能飙升不是梦!
在数据密集型应用中,高效搜索算法至关重要。Trie树(前缀树/字典树)通过优化字符串处理和搜索效率成为理想选择。本文通过Python实战演示Trie树构建与应用,显著提升搜索性能。Trie树利用公共前缀减少查询时间,支持快速插入、删除和搜索。以下为简单示例代码,展示如何构建及使用Trie树进行搜索与前缀匹配,适用于自动补全、拼写检查等场景,助力提升应用性能与用户体验。
20 2
|
9天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能电影制作与剪辑
使用Python实现深度学习模型:智能电影制作与剪辑
27 5
|
23天前
|
存储 缓存 安全
Python案例分享:如何实现文件的上传下载
Python案例分享:如何实现文件的上传下载
95 6
|
5天前
|
UED Python
Python requests库下载文件时展示进度条的实现方法
以上就是使用Python `requests`库下载文件时展示进度条的一种实现方法,它不仅简洁易懂,而且在实际应用中非常实用。
10 0
|
2月前
|
自然语言处理 安全 编译器
Python 中的编译和链接过程
【8月更文挑战第29天】
20 6
|
2月前
|
JSON JavaScript API
用Python编写小工具下载OSM路网数据
用Python编写小工具下载OSM路网数据
|
2月前
|
前端开发 数据库 Python
用Python轻松开发数据库取数下载工具
用Python轻松开发数据库取数下载工具
下一篇
无影云桌面