鱼C论坛

 找回密码
 立即注册
查看: 3162|回复: 3

[经验总结] 豆瓣250爬取数据并制成excel(待续)

[复制链接]
发表于 2018-2-23 23:59:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 snail:) 于 2018-2-24 00:02 编辑
import requests
import re
import bs4
import openpyxl
#获得网页源码(未转码)
def open_url(url):
    headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
    html = requests.get(url,headers = headers)
    return html

def  find_movies(html):
    soup = bs4.BeautifulSoup(html.text,'html.parser')#html.text是requests模块里面的自动解码功能,解码为文本的形式(自动匹配源码的编码形式)
    movies = soup.find_all('div',class_ = 'hd')
    movie = []#用于保存电影民称
    for each in movies:
        movie.append(each.a.span.text)
    pop = []#用于保存评价人数
    rate = []#用于保存评分信息
    rates = soup.find_all('div',class_='star')
    for each in rates:
        rate.append(each.text.split('\n')[2])
        pop.append(re.search(r'\d+',each.text.split('\n')[4]).group())
        #group 用来读取数据re.search(),#暂时理解为类对象,group()方法访问类对象里面的变量
        
    jianjie = []#保存电影简介
    jianjies = soup.find_all('div',class_='bd')
    for each in jianjies:
        '''
        这里我看了原网址的代码,因为jianjies里面还有有些其他不是简介的内容也被包括进去了,所以下面需要一个容错的表达
        '''
        try:
            jianjie.append(each.p.text.split('\n')[1].strip()+each.p.text.split('\n')[2].strip())#strip()函数去前后空格
        except:
            continue
    result = []
    i = len(movie)
    for n in range(i):
        result.append([movie[n],rate[n],pop[n],jianjie[n]])#往excel里添加数据需要是列表的形式
    return result
def save_to_excel(result):
    '''
    将数据保存到excel中
    '''
    wb = openpyxl.Workbook()
    ws = wb.active

    ws['A1'] = "电影名称"
    ws['B1'] = '评分'
    ws['C1'] = "评价人数"
    ws['D1'] = "资料"

    for each in result:
        ws.append(each)

    wb.save("豆瓣TOP250电影.xlsx")
url = 'https://movie.douban.com/top250'
html = open_url(url)
result = find_movies(html)
save_to_excel(result)


这里还未把其他几页放进去,因为找页数的方法不是很明白需要继续学习。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-21 20:06:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-7 15:45:47 | 显示全部楼层
好好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 09:33:10 | 显示全部楼层
学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-4 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表