Python数据分析之豆瓣影片TOP250爬取与分析

豆瓣影片TOP250爬取与分析

我会把每次在网络上做的爬虫和数据分析都发上来,至少每周一次,这既是为了督促自己,也是希望能把自己遇到的问题及解决方法和大家分享。

爬取网页

这次爬虫使用的是pyquery和requests,requests主要是用来获取图片的字节信息的,没在pyquery中找到,知道的朋友也可以说一下,大家一起进步~

因为豆瓣电影中比较友好,所以我只设置了一个伪装浏览器的headers就开始爬取了,很顺畅地获取到了网页信息。

接下来是解析网页了,因为影片信息都在单独

  • 中,所以一次获取一个页面所有影片的
  • ,接下来再进行遍历,把每部影片中的信息提取出来。
  • def get_html(url):      # 获取页面
        headers = {
         
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
        }           # 构建请求头
        doc = pq(url, headers=headers)      # 请求页面,获取返回url的html
        return doc
    
    
    def parse_html(doc):        # 解析页面
        li_list = doc(".article .grid_view").find("li")       # 获取影片内容所在区域
        for item in li_list.items():    # 对同一页中每部影片遍历,获取每部影片相关内容
            try:
                movie_poster_src = item(".item .pic a").find("img").attr("src")     # 获取海报的资源地址
                movie_poster_b = requests.get(movie_poster_src).content     # 获取海报,并将图片转为字节
                movie_num = item(".item .pic em").text()        # 获取影片排行的文本值
                movie_url = item(".item .info .hd a").attr("href")          # 获取影片url地址
                movie_name_list = item(".item .info .hd .title").text().split("/")      # 获取影片名称列表
                movie_name = "/".join(clear_strip(movie_name_list))             # 对影片名称去除左右两边空格并以/分开
                movie_score = item(".item .info .bd .star .rating_num").text()          # 获取影片评分
                movie_intro = item(".item .info .bd .quote span").text()           # 获取影片简介
                movie_info = item(".item .info .bd p").text()           # 获取影片中信息集合,利用正则一次获取
                movie_director = "".join(clear_strip(re.findall(r"导演:(.*?)\xa0", movie_info)))        # 去除左右空格并获取导演信息
                movie_star = "".join(re.findall(r"主演:(.*?)\n", movie_info))             # 去除左右空格获取主演信息
                movie_year = "".join
  • 7
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值