美文网首页Python三期爬虫作业
【Python爬虫】- 阳光电影网国内电影资源抓取

【Python爬虫】- 阳光电影网国内电影资源抓取

作者: 927556dd6e46 | 来源:发表于2017-08-03 14:54 被阅读119次

    抓取目标

    阳光电影网导航栏国内电影资源抓取:电影名称和下载资源的抓取

    页面观察

    点击导航栏的国内电影会跳转到国内电影下载页面,其页面下部有下一页,依次点击2、3..页,其 url 变化为

    http://www.ygdy8.com/html/gndy/china/list_4_2.html
    http://www.ygdy8.com/html/gndy/china/list_4_3.html
    http://www.ygdy8.com/html/gndy/china/list_4_4.html
    .........
    在电影下载页点击电影名称会跳转到电影详情页,也是电影的真正下载地址的所在地,正是所需抓取的内容。

    大体思路

    在国内电影下载页面获取其对应电影的跳转页面 url (也就是详情页面的url),解析内容,获取其下载地址,保存数据。

    编写代码

    import requests
    from lxml import etree
    
    def get_moive_url(url):
        '''
        获取电影列表页内容
        并解析出电影的名称
        和电影详情页的 url
        '''
        result = requests.get(url)
        result.encoding = 'gb2312'
        selector = etree.HTML(result.text)
        infos = selector.xpath('//table[@class="tbspan"]//a[2][@class="ulink"]')
        for info in infos:
            movie_url = 'http://www.ygdy8.com' + info.xpath('@href')[0]
            movie_name = info.xpath('text()')[0]
            get_movie_source(movie_url,movie_name)
    
    
    def get_movie_source(movie_url,movie_name):
        '''
        获取电影详情页内容
        并解析出下载的地址
        '''
        new_result = requests.get(movie_url)
        new_result.encoding = 'gb2312'
        new_selector = etree.HTML(new_result.text)
        new_inofs = new_selector.xpath('//td[@style="WORD-WRAP: break-word"]/a')
        for info2 in new_inofs:
            source_url = info2.xpath('@href')[0]
            source_text = info2.xpath('text()')[0]
            print("电影名称:%s   下载链接:%s" % (movie_name, source_url))
    
    
    if __name__=='__main__':
        base_url = 'http://www.ygdy8.com/html/gndy/china/list_4_%s.html'
        for page in range(1,8):
            url = base_url % str(page)
            print(url)
            get_moive_url(url)
    

    运行结果

    image.png

    相关文章

      网友评论

      本文标题:【Python爬虫】- 阳光电影网国内电影资源抓取

      本文链接:https://www.haomeiwen.com/subject/ygkplxtx.html