ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬虫学习实践(2)——静态网页抓取实践之获取豆瓣top250电影名及信息

2022-02-10 11:35:26  阅读:315  来源: 互联网

标签:info movie 实践 dic text div 名及 top250 find


文章目录

要求

获取豆瓣电影TOP250所有电影名称及其他信息
网址为https://movie.douban.com/top250
由于我觉得英文名港台名这些没啥用,所以我就没爬了。

思路分析

首先,分析所需方法,可以看出所有电影相关信息是静态的,即所有信息都是由HTML写的,那只需要requests就可以了。
在这里插入图片描述

其次,获取请求头
在这里插入图片描述
最后,获取信息所在位置,方便后面的解析
可以看出,所有信息都是在<div class="info">中的;其中,电影名在<span class="title">中,演职表在<p class>中,评分在<div class="star">中。
在这里插入图片描述
至此,所有准备工作已经完成了,下面便让我们开始快乐编程吧。[finghting]


代码实现

# 静态网页实践
# coding: utf-8

import requests
from bs4 import *
from pandas import *

headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69",
         'Host': "movie.douban.com"}
movie_dic={}
ALLname=[]
ALLstar=[]
ALLinfo=[]
for i in range(10):
    link="https://movie.douban.com/top250?start="+str(i*25)
    r=requests.get(link,headers=headers,timeout=10)
    print("第",str(i+1),"页状态码:",r.status_code)

	#以html.parser来解析
    soup=BeautifulSoup(r.text,"html.parser")
    div_list=soup.find_all("div",class_="info")
    
    for i in div_list:
        name=i.find("div",class_="hd").a.span.text.strip()
        info=i.find("div",class_="bd").p.text.strip()
        info = info.replace("\n", " ").replace("\xa0", " ")
        info =  ' '.join(info.split())
        star=i.find('span',class_="rating_num").text.strip()
        
        ALLname.append(name)
        ALLstar.append(star)
        ALLinfo.append(info)

#保存至excel文件
movie_dic["name"]=ALLname
movie_dic["info"]=ALLinfo
movie_dic["star"]=ALLstar
df=DataFrame(movie_dic)
df.to_excel("data.xlsx")

# print(movie_dic)

结果

这是最终结果的一部分,喜欢看电影的小伙伴有的看了
在这里插入图片描述

标签:info,movie,实践,dic,text,div,名及,top250,find
来源: https://blog.csdn.net/m0_51940505/article/details/122839052

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有