top250的电影

本次的电影排行来源于豆瓣。材料仅用于自身学习和记录自己学习过程

使用python中的requests、BeautifulSoup、xlwt,三者需要提前下载好。。

预处理:

url:反应网页变化

其中start后面的数字变化每次加25,对应一页,故我们可以得出规律。

需要筛选部分

<ol class="grid_view">
        <li>
            <div class="item">
                <div class="pic">
                    <em class="">1</em>
                    <a href="https://movie.douban.com/subject/1292052/">
                        <img width="100" alt="肖申克的救赎" src="https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp" class="">
                    </a>
                </div>
                <div class="info">
                    <div class="hd">
                        <a href="https://movie.douban.com/subject/1292052/" class="">
                            <span class="title">肖申克的救赎</span>
                                    <span class="title">&nbsp;/&nbsp;The Shawshank Redemption</span>
                                <span class="other">&nbsp;/&nbsp;月黑高飞(港)  /  刺激1995(台)</span>
                        </a>


                            <span class="playable">[可播放]</span>
                    </div>
                    <div class="bd">
                        <p class="">
                            导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>
                            1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪 剧情
                        </p>

                        
                        <div class="star">
                                <span class="rating5-t"></span>
                                <span class="rating_num" property="v:average">9.7</span>
                                <span property="v:best" content="10.0"></span>
                                <span>3051126人评价</span>
                        </div>

                            <p class="quote">
                                <span class="inq">希望让人自由。</span>
                            </p>
                    </div>
                </div>
            </div>

本次运行时出现了418,防爬问题。我们需要

代码:

总的:

import requests
from bs4 import BeautifulSoup
import xlwt


#获取我们需要的网页
def request_douban(url,headers):
    try:
        res=requests.get(url,headers=headers)
        if res.status_code == 200:
            return res.text
    except requests.RequestException:
        return None




#存储我们需要的信息
def storeed(page,list):
    n = (page * 25) + 1
    for item in list:
        print(n)
        item_name = item.find(class_='title').string
        item_img = item.find('a').find('img').get('src')
        item_index = item.find(class_='').string
        item_score = item.find(class_='rating_num').string
        item_author = item.find('p').text
        # print('爬取电影:' + item_index + ' | ' + item_name +' | ' + item_img +' | ' + item_score +' | ' + item_author +' | ' + item_intr )
        # print('爬取电影:' + item_index + ' | ' + item_name + ' | ' + item_score + ' | ')
        sheet.write(n, 0, item_name)
        print(item_name)
        sheet.write(n, 1, item_img)
        sheet.write(n, 2, item_index)
        sheet.write(n, 3, item_score)
        sheet.write(n, 4, item_author)
        # sheet.write(n, 5, item_intr)
        n = n + 1


def main(page):
    url="https://movie.douban.com/top250?start="+str(page*25)+"&filter="
    headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"}
    html=request_douban(url,headers)
    #初次筛选
    soup = BeautifulSoup(html, 'lxml')




    #save_to_excel(soup)
    list = soup.find(class_='grid_view').find_all('li')
    storeed(page,list)


book = xlwt.Workbook(encoding='utf-8', style_compression=0)
sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True)
sheet.write(0, 0, '名称')
sheet.write(0, 1, '图片')
sheet.write(0, 2, '排名')
sheet.write(0, 3, '评分')
sheet.write(0, 4, '作者')
    # sheet.write(0, 5, '简介')
if __name__ == '__main__':
    for i in range(0, 10):
        main(i)
book.save(u'豆瓣最受欢迎的250部电影.xlsx')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值