【Python爬虫】xpath整站抓取阳光电影网电影资源

一、解析电影url
请求构造出的每个电影菜单的分页url,解析出每个电影url
二、xpath解析电影资源
对解析出来的电影url进行请求,解析出最终的电影名称 电影下载地址
三、对代码进行分装成函数

# -*- coding: utf-8 -*-
#爬虫阳光电影网  首页菜单栏解析
from lxml import etree
import requests
url='http://www.ygdy8.com'
req = requests.get(url)
status_code = req.status_code
#print(status_code)
#网页解码方式
req.encoding='gb2312'
#获取网页源码 用html变量接收 text或content
html = req.text
#print(html)
selector = etree.HTML(html)
url_list=[] #定义一个url列表
#提取菜单栏url
#infors = selector.xpath('//div[@id="menu"]/div[@class="contain"]/ul/li/a')
infros = selector.xpath('//div[@id="menu"]/div[@class="contain"]/ul/li[position()<10]/a')
#看出有多少个标签
#print(len(infors))
for info in infros:
    menu_url_1=info.xpath('@href')
    menu_name_1=info.xpath('text()')
    #print(menu_name[0],menu_url[0])
    if len(menu_name_1)==0:
        pass
    elif menu_url_1[0]=='/html/gndy/index.html':
        pass
    else:
        menu_url=url+menu_url_1[0]#menu_url=/html/gndy/dyzz/index.html
        menu_name=menu_name_1[0]
        #print(menu_name,menu_url)

        req2=requests.get(menu_url)
        req2.encoding='gb2312'
        html2=req2.text
        #print(html2)
        selector2 = etree.HTML(html2)
        page_total=selector2.xpath('//div[@class="co_content8"]/div[@class="x"]//text()')[1].split('/')[0].replace('共',' ').replace('页',' ')
        #print(len(page_total),page_total)
        # 第一次
        #list_id=selector2.xpath('//div[@class="co_content8"]/div[@class="x"]//a/@href')[0]#.split('.')[0].split('_')[1]
        # print(len(list_id),list_id)
        # http: // www.ygdy8.com / html / gndy / dyzz / index.html
        # http://www.ygdy8.com/html/gndy/dyzz/list_23_2.html
        # http: // www.ygdy8.com / html / zongyi2013 / index.html  菜单栏
        # http: // www.ygdy8.com / html / zongyi2013 / list_99_2.html  分页数 要用list_99_2.html替换index.html
        #第二次
        list_id = selector2.xpath('//div[@class="co_content8"]/div[@class="x"]//a/@href')[0].replace('2.html','')
        #replace这里替换的''里面不能加空格否则right_url会有多余空格
        #print(list_id)
        for i in range(1,int(page_total)+1):#int(page_total)循环范围不包括page_total,要+1
            right_url=list_id + str(i)

            fenye_url=menu_url.replace('index',right_url)
            #print(menu_url, right_url, fenye_url)
            url_list.append(fenye_url)


#print(len(url_list))
#请求下载各分页url页面,解析出电影url
for fenye_url in url_list:
    req3=requests.get(fenye_url)
    req3.encoding = 'gb2312'
    html3 = req3.text
    selector3 = etree.HTML(html3)
    #定位分页的电影单页
    infos3=selector3.xpath('//div[@class="co_content8"]//a[@class="ulink"]/@href')
    for info3 in infos3:
        #/html/gndy/dyzz/20170725/54594.html
        #http://www.ygdy8.com/html/gndy/dyzz/20170725/54594.html
        moive_url='http://www.ygdy8.com'+str(info3)
        #print(fenye_url,move_url)
        req4 = requests.get(moive_url)
        req4.encoding = 'gb2312'
        html4 = req4.text
        selector4 = etree.HTML(html4)
        #定位电影名称
        moive_name=selector4.xpath('//div[@class="title_all"]/h1/font/text()')[0]
        #print(moive_name)
        #定位电影下载地址
        moive_source=selector4.xpath('//td[@style="WORD-WRAP: break-word"]/a/@href')[0]
        print(fenye_url,moive_url,moive_name,moive_source)
WX20170831-133316@2x.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 到一个新地方工作还是没有适应这这城市没有朋友,前男友的离去,感觉没有人能听我说话。生活就了无生趣,也不知道自己想要...
    留一片空间给自己呼吸阅读 109评论 0 0
  • 总有一种旅行,你未曾体验; 总有一些朋友,你未曾谋面; 总有一段经历,你未曾遇见; 总有一个梦想,你正去实现; 驴...
    三三张阅读 275评论 0 0
  • 人生很多时候只是一个转身,变了心境,便变了整个世界。 站在宁静处,你享有的便是清平雅乐; 追逐于名闻利养中,你看到...
    医成道人阅读 452评论 0 0
  • 一、二十个为什么 1.为什么我躺在床上有时候舒服,有时候难过? 2.为什么身上有些部位的毛发特别能长? 3.为什么...
    神域熊猫阅读 280评论 0 3