Python抓取电影天堂电影信息的代码


Posted in Python onApril 07, 2016

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 ('<div class="title_all"><h1><font color=#008800>.*?</a>></font></h1></div>'+
      '(.*?)<td height="25" align="center" bgcolor="#F4FAE2"> ',re.S)
 items = re.findall(pattern,conent) 
 
 str = ''.join(items)
 pattern = re.compile ('<a href="(.*?)" class="ulink">(.*?)</a>.*?<td colspan.*?>(.*?)</td>',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'<div class="title_all"><h1><font color=#07519a>(.*?)</font></h1></div>', 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'<div class="co_content8">(.*?)</tbody>',conent , re.S)


 pattern = re.compile('<ul>(.*?)<tr>', re.S)
 movieDate = re.findall(pattern,movieContent[0])

 if (len(movieDate) > 0):
  movieDate = movieDate[0].strip() + ''
 else:
  movieDate = ""

 print("电影发布时间: " + movieDate[-10:])

 pattern = re.compile('<br /><br />(.*?)<br /><br /><img')
 movieInfo = re.findall(pattern, movieContent[0])

 if (len(movieInfo) > 0):
  movieInfo = movieInfo[0]+''

  # 删除<br />标签
  movieInfo = movieInfo.replace("<br />","")

  # 根据 ◎ 符号拆分

  movieInfo = movieInfo.split('◎')

 else:
  movieInfo = ""

 print("电影基础信息: ")

 for item in movieInfo:
  print(item)


 # 电影海报
 pattern = re.compile('<img.*? src="(.*?)".*? />', re.S)		
 movieImg = re.findall(pattern,movieContent[0])

 if (len(movieImg) > 0):
  movieImg = movieImg[0]
 else:
  movieImg = ""
 
 print("电影海报: " + movieImg)

 pattern = re.compile('<td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(.*?)">.*?</a></td>', 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 …

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
Python文件去除注释的方法
May 25 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
Python深入06——python的内存管理详解
Dec 07 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
详解flask入门模板引擎
Jul 18 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
简单了解python单例模式的几种写法
Jul 01 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
python实现经典排序算法的示例代码
Feb 07 Python
Python开发工具Pycharm的安装以及使用步骤总结
Jun 24 Python
Python Requests安装与简单运用
Apr 07 #Python
Python Requests 基础入门
Apr 07 #Python
Python检测网站链接是否已存在
Apr 07 #Python
python多进程共享变量
Apr 06 #Python
python socket多线程通讯实例分析(聊天室)
Apr 06 #Python
python文件的md5加密方法
Apr 06 #Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 #Python
You might like
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
Python常用模块介绍
2014/11/21 Python
详解Python中的静态方法与类成员方法
2017/02/28 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Python类反射机制使用实例解析
2019/12/30 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
大门门卫岗位职责
2013/11/30 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
出纳员的岗位职责
2014/02/22 职场文书
消防标语大全
2014/06/07 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
商务信函英语问候语
2015/11/10 职场文书
初中语文教学研修日志
2015/11/13 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书