美文网首页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