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根据距离和时长计算配速示例
Feb 16 Python
推荐11个实用Python库
Jan 23 Python
Python中实现常量(Const)功能
Jan 28 Python
Python 数据结构之队列的实现
Jan 22 Python
Python 对象中的数据类型
May 13 Python
Python守护线程用法实例
Jun 23 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
python装饰器相当于函数的调用方式
Dec 27 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
python识别验证码的思路及解决方案
Sep 13 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中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
深入理解PHP中的count函数
2016/05/31 PHP
laravel自定义分页效果
2017/07/23 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
Prototype Function对象 学习
2009/07/12 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
详解vue axios二次封装
2018/07/22 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
js实现车辆管理系统
2020/08/26 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
python下读取公私钥做加解密实例详解
2017/03/29 Python
python将list转为matrix的方法
2018/12/12 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
Python解析微信dat文件的方法
2020/11/30 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
亲属关系公证书
2014/04/08 职场文书
爬山的活动方案
2014/08/16 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
硕士论文致谢范文
2015/05/14 职场文书
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript