如何通过爬虫来获取豆瓣上top250的电影信息

运行环境:Macbook pro MacOS Mojave 10.14.5

编译器:科赛(https://www.kesci.com)

爬虫技术需要的技能:python/BeautifulSoup/HTML/Pandas

好的,话不多说,我们开始学习如何使用爬虫来获取豆瓣上top250的电影信息。

一. 获取网页信息

import requests
from bs4 import BeautifulSoup

list = []
url = 'https://movie.douban.com/top250?start='
for i in range(0,10):
    s = i*25
    list.append(url + s + '&filter=')

二.解析网页信息(数据采集)

requests获取的是网页数据,无法直接是要,我们要把数据进行整理,

for l in list:
    
    r = requests.get(url) #获取网页信息
    soup = BeautifulSoup(r.text,'lxml')
    
    

如何通过爬虫来获取豆瓣上top250的电影信息_第1张图片

在进行接下来的操作之前,我们需要对页面进行分析,页面里面的html标签可以看出每一个电影的信息是用ol和li配合来展示的,所以如果要获取每个电影的详细信息的话就要求我们把标签的信息拿到,配合soup的find命令来获取即可。

 

如何通过爬虫来获取豆瓣上top250的电影信息_第2张图片

 

获取信息然后组装到一个字典里面。

allData = []
for l in list:
    r = requests.get(l)
    soup = BeautifulSoup(r.text,'lxml')
    
    li = soup.find_all('div',class_=”item“) #获取当前页面所有的item标签
    #这里的class有下划线,一定要注意,因为class是python关键字    
    
    for one in li:
        dict={}
        dict['title']  = one.find('span',class_="title").text
        dict['desc']   = one.find('p',class_="").text.strip()
        dict['ratNum'] = one.find('',class_="").text
        dict['quote']  = one.find('',class_="")
        allData.append(dict)

        

通过两个for循环把数据写入了列表里面,但是拿到的数据需要我们

三.数据通过Pandas展示

数据获取出来,但是因为是list类型,无法直观的展现给大家,所以这个地方我们借助pandas来进行优化。

import pandas as pd
df = pandas.DataFrame(allData)
df

运行之后的结果就是下面这样的了。

如何通过爬虫来获取豆瓣上top250的电影信息_第3张图片

总结:今天的技术点先讲到这里,其实python爬虫技术并不难,难的是如何提升爬虫的效率以及对于一些反爬的网站如何爬取数据,这些我会放到后面讲解,敬请期待。

你可能感兴趣的:(语言细节,编程开发,人生规划,工作分享)