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中replace方法实例分析
Aug 20 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
Python爬取三国演义的实现方法
Sep 12 Python
python3.4实现邮件发送功能
May 28 Python
python实现自主查询实时天气
Jun 22 Python
Atom的python插件和常用插件说明
Jul 08 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
python str字符串转uuid实例
Mar 03 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
Python趣味入门教程之循环语句while
Aug 26 Python
python实现快速文件格式批量转换的方法
Oct 16 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
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
JS使用数组实现的队列功能示例
2019/03/04 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
Django 外键的使用方法详解
2019/07/19 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
python 回溯法模板详解
2020/02/26 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
新闻记者实习自我鉴定
2013/09/19 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
中班上学期个人总结
2015/02/12 职场文书
收入证明申请书
2015/06/12 职场文书