Python2.7Mac OS
抓取的是电影天堂里面最新电影的页面。链接地址: http://www.dytt8.net/html/gndy/dyzz/index.html
获取页面的中电影详情页链接
import urllib2 import os import re import string # 电影URL集合 movieUrls = [] # 获取电影列表 def queryMovieList(): url = \'http://www.dytt8.net/html/gndy/dyzz/index.html\' conent = urllib2.urlopen(url) conent = conent.read() conent = conent.decode(\'gb2312\',\'ignore\').encode(\'utf-8\',\'ignore\') pattern = re.compile (\'\'+ \'(.*?).*?>
\',re.S) items = re.findall(pattern,conent) str = \'\'.join(items) pattern = re.compile (\'(.*?).*? (.*?) \',re.S) news = re.findall(pattern, str) for j in news: movieUrls.append(\'http://www.dytt8.net\'+j[0])
抓取详情页中的电影数据
def queryMovieInfo(movieUrls): for index, item in enumerate(movieUrls): print(\'电影URL: \' + item) conent = urllib2.urlopen(item) conent = conent.read() conent = conent.decode(\'gb2312\',\'ignore\').encode(\'utf-8\',\'ignore\') movieName = re.findall(r\'\', conent, re.S) if (len(movieName) > 0): movieName = movieName[0] + \"\" # 截取名称 movieName = movieName[movieName.find(\"《\") + 3:movieName.find(\"》\")] else: movieName = \"\" print(\"电影名称: \" + movieName.strip()) movieContent = re.findall(r\'(.*?)
(.*?)\',conent , re.S) pattern = re.compile(\'(.*?)
\', re.S) movieDate = re.findall(pattern,movieContent[0]) if (len(movieDate) > 0): movieDate = movieDate[0].strip() + \'\' else: movieDate = \"\" print(\"电影发布时间: \" + movieDate[-10:]) pattern = re.compile(\'
(.*?)0): movieInfo = movieInfo[0]+\'\' # 删除
标签 movieInfo = movieInfo.replace(\"
\",\"\") # 根据 ◎ 符号拆分 movieInfo = movieInfo.split(\'◎\') else: movieInfo = \"\" print(\"电影基础信息: \") for item in movieInfo: print(item) # 电影海报 pattern = re.compile(\'\', re.S) movieImg = re.findall(pattern,movieContent[0]) if (len(movieImg) > 0): movieImg = movieImg[0] else: movieImg = \"\" print(\"电影海报: \" + movieImg) pattern = re.compile(\' .*? \', re.S) movieDownUrl = re.findall(pattern,movieContent[0]) if (len(movieDownUrl) > 0): movieDownUrl = movieDownUrl[0] else: movieDownUrl = \"\" print(\"电影下载地址:\" + movieDownUrl + \"\") print(\"------------------------------------------------\\n\\n\\n\")执行抓取
if __name__==\'__main__\': print(\"开始抓取电影数据\"); queryMovieList() print(len(movieUrls)) queryMovieInfo(movieUrls) print(\"结束抓取电影数据\")总结
学好正则表达式很重要,很重要,很重要!!!! Python的语法好有感觉, 对比Java …
相关内容
热门资讯500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...