爬取豆瓣电影信息-基于BeautifulSoup

爬取豆瓣电影信息-BeautifulSoup

1.分析网页结构及爬取
  • 爬取网页小截图
    在这里插入图片描述- 建议大家用谷歌浏览器,fn+F12,打开如下界面,可以发现,每一条记录都存放在“
  • ”中,下面第二幅图,是第一个li标签下的内容。
    在这里插入图片描述 在这里插入图片描述
实现网页翻页爬取
  • 逐个单价,找到url之间的规律:
    就此例题举例,start=0,25,50,75,…,可以找到页面之间的规律,每次加25,同时也是25的倍数。
不同页面情况对比
https://movie.douban.com/top250?start=0&filter=
https://movie.douban.com/top250?start=25&filter=
https://movie.douban.com/top250?start=50&filter=
https://movie.douban.com/top250?start=75&filter=
  • 获取“后页”按钮或者网页超链接,依次访问实现爬取
  • 采用网页自动操作技术,获得“后页”按钮或者超链接进行自动单击跳转,如Selenium技术的鼠标单击事件。
爬取实现代码如下
import pandas as pd
from bs4 import BeautifulSoup
import requests
def crawl(url,a1,a2,a3,a4,a5):
    head={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}  #请求头
    r = requests.get(url,headers=head)
    html=r.text
    soup=BeautifulSoup(html,'html')
    for tag in soup.find_all(attrs={'class': 'item'}):
        #爬取序号
        num=tag.em.string
        a1.append(num)
        print(num)
        #电影名称
        name=tag.find_all(attrs={'class': 'title'})
        zwname=name[0].get_text()  #或者 zwname=name[0].string
        a2.append(zwname)
        print(zwname)
        #爬取网页链接
        url_name=tag.find(attrs={'class': 'hd'}).a
        urls=url_name.attrs['href']
        a3.append(urls)
        #爬取评分
        info=tag.find(attrs={'class': 'star'}).get_text()
        info=info.replace('\n','').replace('.',',评价人数:').replace('人评价','')
        a4.append(info)
        print(info)
        #获得评语
        info1=tag.find(attrs={'class': 'inq'})
        if(info1):
            content=info1.get_text()
            print(content)
            a5.append(content)
        else:
            a5.append(info1)

if __name__ == '__main__':
    N=10
    a1,a2,a3,a4,a5=[],[],[],[],[]
    for j in range(N):
        url = 'https://movie.douban.com/top250?start='+str(j*25)+'&filter='  #实现网页翻转
        crawl(url,a1,a2,a3,a4,a5)
data=pd.DataFrame({'爬取序号':a1,'电影名称':a2,'爬取网页链接':a3,'爬取评分':a4,'获得评语':a5})
data.to_excel('E:\C盘数据\data3.xlsx',sheet_name='250个电影推荐')  #数据保存,记得修改一下路径
爬取效果(爬取评分那里可以完善一下,分成2个属性)

在这里插入图片描述

喜欢的给个小关注,学院自创公众号,期待大家的建议与推荐。

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值