python+request爬取电影网站
来源:互联网 发布:linux 杀dhcp进程 编辑:程序博客网 时间:2024/06/05 04:07
使用python+request进行电影网站的爬取
今天我们爬取的网站是http://www.6vhao.com
项目链接GtiHub
实现功能:
- 对不同分类下的电影进行爬取
- 只留下百度网盘的下载链接
- 正则表达式的使用
代码块 主要代码
pythonimport requestsimport lxml.html as htmlimport re#将不同的电影分类放入列表中list_dianyinleibei = ['xiju','dongzuo','aiqing','kehuan','qihuan','huanxiang','kongbu','zhanzheng','maoxian','juqingpian','zhuanji','lishi']for ppaa in list_dianyinleibei: for pa in range(1,10):#爬取每个分类下的前10页数据 # url = 'http://www.6vhao.com/s/xiju/' if pa == 1: url = 'http://www.6vhao.com/s/%s/'%ppaa else: url = 'http://www.6vhao.com/s/%s/index_%d.html'%(ppaa,pa) r = requests.get(url) # 编码问题,不执行这句话会乱码 r.encoding = 'gb2312' tree = html.fromstring(r.text) """ 一级页面的标题,属性,二级链接 """ title_list = tree.xpath('//*[@id="main"]/div[1]/div/ul/li/a//text()') faburiqi_list = tree.xpath('//*[@id="main"]/div[1]/div/ul/li/span//text()') erji_url = tree.xpath('//*[@id="main"]/div[1]/div/ul/li/a/@href') page_list(erji_url)#调用了自己写的函数,
函数代码块page_list
def page_list(erji_url): for i in range(len(erji_url)): erjiwenben = geturl(erji_url[i]) #获取二级文本,也是自定义函数geturl() #get_tongyongziduan()自定义函数 daoyan = get_tongyongziduan(u'导 *演(.*)',erjiwenben) #导演抓取 dianyinpinfen = get_tongyongziduan(u'豆瓣评 *分(.*)', erjiwenben) #电影评分 if not dianyinpinfen: dianyinpinfen = u'暂无评分' pianchang = get_tongyongziduan(u'片 *长(.*)', erjiwenben) #抓取影片播放时间 shangyinriqi = get_tongyongziduan(u'上映日期(.*)', erjiwenben) #抓取上映日期 yuyan = get_tongyongziduan(u'语 *言(.*)', erjiwenben) #抓取电影语言字段 zimu = get_tongyongziduan(u'字 *幕(.*)', erjiwenben) #抓取字幕字段 xiazaidizhi = get_tongyongziduan(u'网盘链接[::](http://pan.baidu.com.+?) ?密码[::]', erjiwenben) #抓取网盘下载链接 #在通用函数中不小将http中的冒号:去掉了,通过这样补回来 xiazaidizhi = re.sub('http','http:',xiazaidizhi) tiquma = get_tongyongziduan(u'网盘链接[::]http://pan.baidu.com.+? ?密码[::](.*)', erjiwenben) # 抓取网盘提取密码 dianyinleibie = get_tongyongziduan(u'类 *[别型](.*)', erjiwenben) print '电影类型',dianyinleibie title = title_list[i] title = re.sub(u'.*《',u'《',title) title = re.sub(u'》.*',u'》',title)#正则re.sub()替换 faburiqi = faburiqi_list[i] myurl = erji_url[i] #对抓取到的数据进行输出, print daoyan print dianyinpinfen print pianchang print shangyinriqi print yuyan print zimu print xiazaidizhi print tiquma print dianyinleibie
代码块geturl,get_tongyongziduan
上面代码中这两个函数被调用:
"""处理二级url函数,返回一个页面文本"""def geturl(url): r = requests.get(url) r.encoding = 'gb2312' tree = html.fromstring(r.text) wenben = tree.xpath('//text()') wenben = "".join(wenben) # print wenben return wenben"""设计通用字段抓取函数 str1 填写相关的正则表达式,search_wenben 填写相关的查找文本"""def get_tongyongziduan(str1, search_wenben): tongyong_group = re.search(str1, search_wenben) if tongyong_group: tongyong = tongyong_group.group(1).replace(':','').replace(u':','').strip() else: tongyong = "" return tongyong
在这样基本完成了对电影网站的下载,注意一点,被调用的自定义函数要写在主代码块的前面哦
我在GitHub上面上传了我的爬取项目,里面还实现了对抓取的数据导入到mysql数据库中。
刚刚开始写博客,写的不好的地方还望大家指出。o(∩∩)o…
1 0
- python+request爬取电影网站
- scrapy爬取电影网站
- Python爬取豆瓣电影
- Python爬取豆瓣电影
- Python爬取豆瓣电影
- 爬取国内主流电影网站的电影更新情况
- Python爬取豆瓣电影top250
- python爬取豆瓣电影信息
- Python爬取豆瓣电影Top250数据
- python+beautifulsoup爬取豆瓣电影TOP250
- python爬取豆瓣电影信息
- Python爬取豆瓣电影top250
- python爬取豆瓣电影Top250
- python 爬取电影下载链接
- python 爬取360看看的电影
- python爬取豆瓣电影top250
- Python爬取猫眼电影TOP100
- Java爬虫爬取网站电影下载链接
- linux 新建挂载空闲磁盘空间
- mysql设置远程访问
- 抽象类(abstract class)和接口(Interface)的区别
- iOS自动化打包脚本(shell)
- JVM系列二:GC策略&内存申请、对象衰老
- python+request爬取电影网站
- Jenkins环境搭建
- Python中元组,列表,字典的区别
- canvas.drawPath 没起作用
- 在Android M及更高版本中使用 Settings.System 抛出异常"You cannot keep your settings in the secure settings. "
- C++软件工程师笔试题附答案
- Android 生成apk自动重命名名字以及设置签名
- Android 将具体数值转换成dip简单方法
- 第六周算法分析与设计Ⅱ:Merge Two Sorted Lists