BeautifulSoup爬取豆瓣电影Top250

【摘要】
任务要求:
爬取豆瓣电影Top250的电影名、评分、短评、评分人数等信息

通过博客对beautifulSoup4的简单介绍,现在开始实战啦,没有看过的,可以先看看

Python网络爬虫基础–BeautifulSoup使用selenium定位获取标签对象并提取数据利用selenium爬取数据总结
推荐阅读:
使用xpath爬取数据j…

任务要求

爬取豆瓣电影Top250的电影名、评分、短评、评分人数等信息

在这里插入图片描述


通过博客对beautifulSoup4的简单介绍,现在开始实战啦,没有看过的,可以先看看

推荐阅读:

  1. 使用xpath爬取数据
  2. jupyter notebook使用
  3. BeautifulSoup爬取豆瓣电影Top250
  4. 一篇文章带你掌握requests模块
  5. Python网络爬虫基础–BeautifulSoup

直接上代码

# -*- coding: utf-8 -*-
"""
Created on Mon Dec 22 12:03:06 2020

@author: kun
"""
import requests
from bs4 import BeautifulSoup
import pandas as pd
from fake_useragent import UserAgent
ua = UserAgent()

headers = {
'user-agent': ua.random,
'Host': 'movie.douban.com'
}
def get_movies(): movie_list = [] for i in range(0,10): link = 'https://movie.douban.com/top250?start=' + str(i * 25) r = requests.get(link, headers=headers, timeout= 10) soup = BeautifulSoup(r.text, "lxml") div_list = soup.find_all('div', class_='info') for each in div_list: title = each.find('div', class_='hd').a.span.text.strip() info = each.find('div', class_='bd').p.text.strip() info = info.replace("\n", " ").replace("\xa0", " ") info =  ' '.join(info.split()) rating = each.find('span', class_='rating_num').text.strip() num_rating = each.find('div', class_='star').contents[7].text.strip() try: quote = each.find('span', class_='inq').text.strip() except: quote = "" movie_list.append([title, info, rating, num_rating, quote]) df = pd.DataFrame(movie_list,columns=['电影名称', '信息', '评分', '评价人数', '短评'],index=None) df.to_csv("douban.csv") return movie_list movies = get_movies()
print (movies) 
  
 

到这里就结束了,如果对你有帮助你,欢迎点赞关注,你的点赞对我很重要

文章来源: blog.csdn.net,作者:北山啦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_45176548/article/details/111519379

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享