豆瓣电影排行(电影名,年份,人数,内容概括)抓取,并保存到excel

豆瓣电影排行(电影名,年份,人数,内容概括)抓取,并保存在excel表格中:
笔记分享

import requests
import re
import pandas as pd

url = "https://movie.douban.com/top250"
head = {
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
       }
resp = requests.get(url=url, headers=head)
content = resp.text
"""先把正则表达式写好"""
obj = re.compile(r'<span class="title">(?P<movie_name>.*?)'
                 r'</span>.*?<br>\n\s+(?P<movie_year>.*?)&nbsp.*?<span>'
                 r'(?P<movie_people>.*?)</span>.*?<span class="inq">'
                 r'(?P<movie_comments>.*?)</span>', re.S)

l_text = obj.finditer(content)
l = []
for i in l_text:
    l.append(i.groupdict())

l2 = []
for line in l:
    l2.append(line['movie_name'])
    l2.append(line['movie_year'])
    l2.append(line['movie_people'])
    l2.append(line['movie_comments'])

"""这里用pandas模块将数据保存为excel,需要做一个二维列表,将列表的数据每4个组成一个新列表"""
"""正常for循环写法"""
l3 = []
for k in range(0, len(l2), 4):
    l3.append(l2[k:k+4])
#result = l3  
"""列表推导式写法"""
result = [l2[i:i+4] for i in range(0, len(l2), 4)]

"""这里写一个函数,来完成操作,只需要将二维列表传入即可"""
def func(result):
    company_name_list = result
    df = pd.DataFrame(company_name_list,columns=['电影名','播出年份','人数','电影概括'])
    df.to_excel('豆瓣.xlsx',index=False)
func(result)

print("保存完毕")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值