将爬取的电影解析并写入excel中

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
#将解析的电影写入excel中
import requests #导入网页请求库
from bs4 import BeautifulSoup #导入网页分析库
import pprint#打印格式
import json
import xlwt
#传入URL
def start_request(url):
    r = requests.get(url)
    return r.text
#解析URL

def parser(text):
    value_list = []
    soup = BeautifulSoup(text, 'html.parser')
    movie_list = soup.find_all('div',attrs={'class':'item'})
    for movie in movie_list:
        mydict = {}
        mydict['title'] = movie.find('span', class_ = 'title').text
        #print( mydict)
        for value in mydict.values():
            value_list.append(value)
            #print(value_list)
            #print(len(value_list))
            wbk = xlwt.Workbook()
            sheet = wbk.add_sheet('movies')
            #for i in range()
    #print(len(value_list))
    #print(value_list)
    a = 0
    sheet.write(0, 3,'movie')
    for i in range(len(value_list)):
        sheet.write(i+1,3, value_list[a])
        wbk.save('list.xls')
        a = a + 1
    return value_list
def main():
        url = 'https://movie.douban.com/top250?start={}&filter='
        text = start_request(url)
        parser(text)
if __name__ == '__main__':
    main()

以上是之前参考一篇文章所写的爬取豆瓣250页面内容,今天又重新写了一遍,分为两版,一个是没有封装为函数,另一个封装成函数,这个小练习主要熟悉了beautifulsoap的用法,使用beautifulsoap先初步提取出网页全部源码,之后使用findall方法按照标签匹配相应内容,但是在提取出的内容并不完全是我想要的,所有再一次使用正则表达式进行精确提取,或者使用for循环、if语句筛选内容。提取到Excel部分的内容在另一篇文章中也写过,我基本上还是按照原来的方法做的,详见https://blog.csdn.net/xd060606/article/details/86503872

未封装成函数的

import requests
import re#正则表达式  regular expression
from bs4  import BeautifulSoup
import xlwt

#爬取整体内容
url = 'https://movie.douban.com/top250'
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")

#对内容分类
#标题
movie_title = soup.find_all("span", "title")
movie_name = re.findall(r'.*?title">(.*?)<', str(movie_title))
# print(movie_name)
for i in movie_name:
    if '\xa0/\xa0' in i :
        movie_name.remove(i)
# print(movie_name)

#描述
movie_desc01 = soup.find_all( "p", class_= "") 
movie_desc = []
for i in movie_desc01:
    movie_desc.append(i.text.replace('</p>, <p class="">', '').replace('\n                            ', '').replace('\xa0','').replace('\n                        ','')) 
# print(movie_desc)

#评分
movie_score01 = soup.find_all('span', class_='rating_num')
movie_score = re.findall(r'.*?average">(.*?)<', str(movie_score01))
# print(movie_score)

#标签
movie_quote01 = soup.find_all('span', class_= 'inq')
movie_quote = re.findall(r'.*?inq">(.*?)<', str(movie_quote01))

#写入Excel
wd = xlwt.Workbook()
ws = wd.add_sheet("douban_250")
ws.write(0, 0, '电影名')
ws.write(0, 1, '描述')
ws.write(0, 2, '分数')
ws.write(0, 3, '标签')

for i in range(len(movie_name)):
    ws.write(i+1, 0, movie_name[i])
    ws.write(i+1, 1, movie_desc[i])
    ws.write(i+1, 2, movie_score[i])
    ws.write(i+1, 3, movie_quote[i])

wd.save("douban.xls")

封装成函数

import requests
import re#正则表达式  regular expression
from bs4  import BeautifulSoup
import xlwt


def catch_title(soup):
    movie_title = soup.find_all("span", "title")
    movie_name = re.findall(r'.*?title">(.*?)<', str(movie_title))
# print(movie_name)
    for i in movie_name:
        if '\xa0/\xa0' in i :
            movie_name.remove(i)
    return movie_name

def catch_desc(soup):
    movie_desc01 = soup.find_all( "p", class_= "") 
    movie_desc = []
    for i in movie_desc01:
        movie_desc.append(i.text.replace('</p>, <p class="">', '').replace('\n                            ', '').replace('\xa0','').replace('\n                        ','')) 
    return movie_desc


def catch_score(soup):
    movie_score01 = soup.find_all('span', class_='rating_num')
    movie_score = re.findall(r'.*?average">(.*?)<', str(movie_score01))
    return movie_score

def catch_quote(soup):
    movie_quote01 = soup.find_all('span', class_= 'inq')
    movie_quote = re.findall(r'.*?inq">(.*?)<', str(movie_quote01))
    return movie_quote

def save_excel(movie_name, movie_desc, movie_score, movie_quote):
    wd = xlwt.Workbook()
    ws = wd.add_sheet("douban_250")
    ws.write(0, 0, '电影名')
    ws.write(0, 1, '描述')
    ws.write(0, 2, '分数')
    ws.write(0, 3, '标签')
    for i in range(len(movie_name)):
        ws.write(i+1, 0, movie_name[i])
        ws.write(i+1, 1, movie_desc[i])
        ws.write(i+1, 2, movie_score[i])
        ws.write(i+1, 3, movie_quote[i])

    wd.save("douban02.xls")
    

def main():
    
    url = 'https://movie.douban.com/top250'
    res = requests.get(url)
    soup = BeautifulSoup(res.text, "html.parser")
        # print(soup)
    name = catch_title(soup)
    desc = catch_desc(soup)
    score = catch_score(soup)
    quote = catch_quote(soup)
    save_excel(name, desc, score, quote)
        

if __name__ == "__main__":
    main()






总体而言,推荐大家使用函数对内容进行封装,后期修改或者添加功能会更加清晰明了。

豆瓣电影Top250信息爬取保存到excel文件中! 效果图 话不多说,先上存储为excel文件后的效果图,这里只是简单的将爬取到的数据保存到文件中,没有对表格数据进行标准化处理。因为这涉及到另一个python用来处理表格的库,在这里就不过多的说明,稍后会有相关的文章涉及。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 前言 对于豆瓣电影Top250的爬取是相对来说很简单的,尤其是对于新手来说,用该页面来当作爬虫的上手练习项目,是入坑爬虫的首选,很多爬虫初学者都会选择该项 阅读详情

相关推荐

Python爬虫实战(爬取豆瓣电影

python

weixin_44822939的博客 3170

豆瓣电影EXCEL列表

豆瓣电影EXCEL列表

豆瓣电影海报爬取

豆瓣电影海报爬取 完整代码 目的 已有数据为2w8k条的豆瓣电影id,需要爬取的内容为对应电影的海报url地址,讲爬取的内容写入excel文件中 环境准备 本文讲的是使用Anaconda进行环境的配置 1.创建一个conda虚拟环境 conda create -n 环境名称 python=[python版本] 2.安装需要的环境依赖 需要安装的依赖有requests、openpyxl、xlrd、bs4 conda install requests conda install openpyxl cond

qq_46015650的博客 1161

爬取猫眼 TOP100 电影excel 格式存储

爬取目标 本文将提取猫眼电影 TOP100 排行榜的电影名称、时间、评分、图片等信息,URL 为http://maoyan.com/board/4,提取的结果我们以 excel 格式保存下来。 准备工作 保证电脑安装了 python3.6 和已经安装好了 requests 库、beautifulsoup 库和 openpyxl 库。 前期安装步骤可以参考:https://germey....

Waspvae的博客 3300

爬取豆瓣电影 Top250 电影存储到 Excel 表中

文章目录一、前期准备二、代码 一、前期准备 观察网页 url 或者通过最下面的分页审查元素: 发现规律,0-25-50。。。递增,以此确定爬取 page 页码 确定爬取的内容 名称、图片、排名、评分、作者、简介 二、代码 请求网页代码: # 请求豆瓣电影 def request_douban(url): try: response = requests.get(...

南淮北安的博客 4460

Python爬取豆瓣top250电影数据,导入MySQL,写入excel

Python爬取豆瓣top250电影数据,导入MySQL,写入excel 具体数据:电影链接、电影名称、电影评分、评分人数、电影概括 import pymysql import xlwt from bs4 import BeautifulSoup from urllib import request import re baseurl = 'https://movie.douban.com/t...

SFS_Ccjm的博客 1704

爬虫学习笔记----------抓取信息写入Excel表格

本次学习主要是将抓取到的信息保存为Excel文件

Saltedefish的博客 543

Python学习(爬取信息1)

1、

y_j_6666的博客 1157

python翻页爬取豆瓣影评_Python3爬取豆瓣电影

目标是爬取2000年到2016年的电影进行数据分析。本文适合新手下面以2016年的电影为例:进入网页按Fn+F12,我们就能看到:通过正则表达式解析获取数据:pattern = re.compile('.*?>(.*?).*?class="pl">(.*?)'+ '.*?(.*?).*?class="pl">(.*?)', re.S)items = re.findall(pa...

weixin_42449548的博客 1131

python3爬取豆瓣最火电影

首先我们需要导入的有requests bs4和BeautifulSoup 还有就是导入xlwt这个是excel文件 import requests from bs4 import BeautifulSoup import xlwt def request_douban(url): try: response = requests.get(url) ...

weixin_40593587的博客 351

python爬取豆瓣电影top250保存为xlsx_【pythonPython爬豆瓣电影top250导出Excel

本帖最后由 莫失莫忘angle 于 2020-9-29 16:44 编辑以前写到csdn了话说直接复制没有格式那就重新在写一遍首先需要安装好爬虫需要用到的python库开发工具使用的是pycharm1:request网络请求模块2:lxml 取数据的模块 这里用的是xpath没有用bs43.xlwings 对Excel进行读写的模块如果安装失败 或者安装缓慢 可以参考...

weixin_39707941的博客 459

爬出数据写入excel

# -*- coding: UTF-8 -*- import time import requests import xlwt from bs4 import BeautifulSoup import xlrd from xlutils.copy import copy def write_excel_xls_append(path, value): index = len(value...

垂钓者-change 690

python爬取猫眼 TOP100 电影excel 格式存储

爬取目标本文将提取猫眼电影 TOP100 排行榜的电影名称、时间、评分、图片等信息,URL 为http://maoyan.com/board/4,提取的结果我们以 excel 格式保存下来。准备工作保证电脑安装了 python3.6 和已经安装好了 requests 库、beautifulsoup 库和 openpyxl 库。前期安装步骤可以参考:https://germey.gitbooks.i...

weixin_34128237的博客 1305

python爬取电影名字导入excel_python爬取豆瓣top250的电影数据存入excle

爬取网址:https://movie.douban.com/top250一:爬取思路(新手可以看一下) :1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中向get_page函数传递url和运save函数接受get_page函数传递过来的值2:准备动手二:爬取前的准备我是pyhton3 pycharm需要准备的库 requests,lxml,xlwtre...

weixin_39747341的博客 500

Python爬取豆瓣 看过的电影

直接附上Python代码:#coding=utf-8 import requests from requests.exceptions import RequestException import re import json import xlwt import xlrd def get_one_page(url): try: response = re...

vagabond6的博客 1099

爬取豆瓣前25Top好评电影

import requests from bs4 import BeautifulSoup from openpyxl import Workbook wb = Workbook() sheet = wb.active url = ‘https://movie.douban.com/top250’ ret = requests.get(url=url) data = ret.text soup =...

qq_39280310的博客 409

python写入excel

注意事项: 模块xlwt适用于写入xls格式的excel 模块openpyxl 适用于写入xlsx格式的excel 如果使用xlwt写入xlsx格式的e'x

qq_36043775的博客 586

Python数据采集系列】利用协程发采集豆瓣TOP250电影信息(源码解析

利用协程发采集豆瓣TOP250电影信息(源码解析

数据杂坛 1500

python爬虫豆瓣top250_Python 爬取豆瓣TOP250实战

学习爬虫之路,必经的一个小项目就是爬取豆瓣的TOP250了,首先我们进入TOP250的界面看看。 可以看到每部电影都有比较全面的简介。其中包括电影名、导演、评分等。接下来,我们就爬取这些数据,将这些数据制成EXCEL表格方便查看。首先,我们用requests库请求一下该网页,返回他的text格式。 请求返回成功!接下来,我们提取我们所需要的网页元素。点击“肖申克救赎”的检查元素。 发现它在d...

weixin_36057373的博客 1128
下一篇: python生成激活码
可乐饲养员
博客等级 码龄8年 45粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值