第一个爬虫经历----豆瓣电影top250(经典案例)

Posted hobelee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个爬虫经历----豆瓣电影top250(经典案例)相关的知识,希望对你有一定的参考价值。

      因为要学习数据分析,需要从网上爬取数据,所以开始学习爬虫,使用python进行爬虫,有好几种模拟发送请求的方法,最基础的是使用urllib.request模块(python自带,无需再下载),第二是requests模块(第三方库,需要pip install requests),第三是直接使用scaper模块(第三方库,需要下载)。

      本次开发使用的工具是jupyter notebook,使用到的模块主要有requests(模拟http请求,详情请看http://2.python-requests.org/zh_CN/latest/user/quickstart.html),BeautifulSoup(处理请求的数据,以dom的形式进行处理,详细查看https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/),pandas(将处理后的数据存储为DataFrame,如果想详细了解此库可以查看https://www.cnblogs.com/lvpengbo/p/10851096.html),re(正则表达式库 https://docs.python.org/zh-cn/3/library/re.html)。

    具体代码如下:

import requests
import pandas as pd
import re
from bs4 import BeautifulSoup
url=https://movie.douban.com/top250?start={}&filter=
headers={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/80.0.3987.122 Safari/537.36"}
movie_list=[]
movie_rank=[]
movie_score=[]
people_num=[]
movie_year=[]
county_list=[]
director_list=[]
quote_list=[]
for i in range(10):
    start=i*25
    request_url=url.format(start)
    response=requests.get(request_url,headers=headers)
    data=response.content.decode(utf-8)
    soup=BeautifulSoup(data,html.parser)
    all_item_divs=soup.find_all(class_=item)
    for item in all_item_divs:
        movie_list.append(item.find(span).get_text())
        movie_rank.append(item.find(em).get_text())
        movie_score.append(item.find(span,class_=rating_num).get_text())
        num=item.find(div,class_=star).contents[7].get_text()
        people_num.append(int(re.findall(\\d+,num)[0]))
        br_value=item.find(p).get_text()
        movie_year.append(re.findall(\\d+,br_value)[0].strip())
        director=list(filter(None,br_value.split(/)[0].split(:)[1].split( )))[0]
        director_list.append(director)
        county_list.append(br_value.split(/)[2].strip())
        if item.find(span,class_=inq)==None:
            quote_list.append(‘‘)
        else:
            quote_list.append(item.find(span,class_=inq).get_text()) 
df=pd.DataFrame(
    {排名:movie_rank,
     电影名称:movie_list,
     上映日期:movie_year,
     国家:county_list,
      导演:director_list,
     评分:movie_score,
     评论人数:people_num,
    经典台词:quote_list})
df.to_csv(豆瓣250.csv)

 

    

    

     

以上是关于第一个爬虫经历----豆瓣电影top250(经典案例)的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫入门爬取豆瓣电影top250

Python爬虫-豆瓣电影 Top 250

Python爬虫实践 四种姿势爬取豆瓣电影Top250信息!

Python爬虫实践 四种姿势爬取豆瓣电影Top250信息!

Python小爬虫——抓取豆瓣电影Top250数据

爬虫小案例:豆瓣Top250电影