Grab框架爬取电影信息

为什么选取Grab框架,原因是它的许多优点:

  1. 高效的数据抓取:Grab框架支持异步网络请求处理,这意味着它可以同时处理多个网络请求,从而显著提高数据抓取的效率。
  2. 强大的HTML解析能力:内置的HTML解析支持使得Grab能够轻松地抽取网页内容。无论是简单的文本提取还是复杂的DOM树操作,Grab都能提供便捷的方法。
  3. 高度的可定制性:Grab提供了一套灵活的配置机制,允许用户根据需求高度定制抓取行为。这包括请求头、代理、超时设置等多个方面,使得Grab能够适应各种复杂的抓取场景。
  4. 丰富的功能支持:除了基本的页面抓取功能外,Grab还支持文件上传、cookie处理、重定向、代理管理、错误处理、重试逻辑等。这些功能对于构建复杂的爬虫任务至关重要。
  5. 详细的日志记录:Grab提供了详细的日志记录功能,有助于开发者在调试和运行时跟踪和排查问题。
  6. 良好的文档和社区支持:Grab拥有完善的文档,对于新手来说非常友好。同时,作为一个开源项目,Grab也拥有活跃的社区支持,开发者可以在社区中寻求帮助或分享经验。

接下来,我们有一个需求:

爬取追剧影视网站的"正在热播"部分的影视信息。输出影视名称、影视类型(判断是电影还是电视剧,如果是电影则输出电影,如果是电视剧,输出电视剧和集数)、影视画质、影视评分人数、影视评分和主演。

于是我们启动Grab框架行动吧!

具体实现:

from grab import Grab

print("追剧影视网站的'正在热播'的影视信息如下:")
print()
# 创建对象
g = Grab()
# 设置要请求的网页的url
url1 = 'https://zjuys.com/'
# 发起请求并得到响应即html
res = g.go(url1)
# 影视
videos = res.select('//*[@id="flex-1"]/main/div[2]/div/div/div[1]/div/div[2]/div[3]/div/div')
for video in videos:
    # 影视名称
    video_name = video.select('./div/a/div[2]/div[1]/div/span').text()
    print("影视名称:"+video_name)

    # 影视类型
    # 根据标签里面内容是否为空即是否显示剧集判断,为空就是电影,不为空就是电视剧,并且获取剧集
    video_num = video.select('./div/a/div[1]/div[2]/div[1]').text()
    if video_num:
        if '集' in video_num:
            print('影视类型:电视剧')
            print('电视剧集数:' + video_num)
        else:
            print('影视类型:电影')
    else:
        print('影视类型:电影')

    # 影视画质
    video_qua = video.select('./div/a/div[1]/div[3]/div').text()
    print('影视画质:'+video_qua)

    # 影视评分人数
    video_score_people = video.select('./div/a/div[1]/div[2]/div[2]/div[1]').text()
    video_score_people = video_score_people.replace('"','')
    print("影视评分人数:"+video_score_people)

    # 影视评分
    video_score = video.select('./div/a/div[1]/div[2]/div[2]/div[2]').text()
    print("影视评分:"+video_score)

    # 主演
    video_actors = video.select('./div/a/div[2]/div[2]/span').text()
    print("主演;"+video_actors)

    print('------------------------------------------------------------')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值