两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. 問題分析

        我們在上一節(jié)爬取了網(wǎng)頁的全部信息,下面我們還要這樣html代碼中找到我們所需要的內(nèi)容,因此我們要根據(jù)問題進(jìn)入網(wǎng)站中,去解析網(wǎng)頁中的信息。

 爬取豆瓣電影信息1

        從頁面中可以發(fā)現(xiàn),我們需要爬取的信息分別存在于不同的分區(qū)當(dāng)中,那么我們來檢查一下頁面的元素,右鍵頁面檢查網(wǎng)頁源代碼或者F12。

 爬取豆瓣電影信息2

        在分析網(wǎng)頁之前,我們先規(guī)定一下解析之后的存儲方式,這里我們采用列表來存儲所有的信息,然后列表中的每一項對應(yīng)一個字典,每一個字典再對應(yīng)多種信息。

movies = []#首先定義一個列表來存儲所有信息

        通過分析我們可以確定title的位置是名為‘hd’的‘div’下的第一個‘a(chǎn)’中的第一個‘span’,因此我們可以通過下面代碼來鎖定每一個電影的名字,然后放到一個字典中。

moviename = each.find('div', class_='hd').a.span.text.strip()
movie['title'] = moviename#字典的一項

        相同的方式可以再根據(jù)定位找到導(dǎo)演名的源碼,但是這個源碼中包含了很多信息,所以我們要通過正則表達(dá)式進(jìn)行過濾。

 

爬取豆瓣電影信息3

info = each.find('div', class_='bd').p.text.strip()

        首先找到了這個標(biāo)簽下的所有內(nèi)容,我們再通過正則表達(dá)式過濾掉無關(guān)信息。

info = info.replace('\n', "")#過濾回車
info = info.replace(" ", "")#過濾空格
info = info.replace("\xa0", "")#過濾不間斷空白符
director = re.findall(r'[導(dǎo)演:].+[主演:]', info)[0]
director = director[3:len(director) - 6]

        然后定義為字典的一項。

movie['director'] = director#字典的一項

        我們可以發(fā)現(xiàn)電影類型也在這個‘p’標(biāo)簽中,我們也直接通過正則表達(dá)式來獲取該信息。

plot = re.findall(r'[0-9]*[/].+[/].+', info)[0]
plot = plot[1:]
plot = plot[plot.index('/') + 1:]
plot = plot[plot.index('/') + 1:]
movie['plot'] = plot#添加為字典的 一項

        最后再鎖定評分信息。

star = each.find('div', class_='star')
star = star.find('span', class_='rating_num').text.strip()

        然后繼續(xù)以字典的形式保存。

movie['star'] = star

        最后把這個字典添加到列表中并遍歷輸出。

movies.append(movie)#把字典加到列表中
for i in movies:#遍歷輸出
    print(i)

2. 完整代碼

import re
import requests
from bs4 import BeautifulSoup
for i in range(1):
    headers = {#模擬瀏覽器進(jìn)行訪問
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 
        (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',
        'Host': 'movie.douban.com'
    }
    res = 'https://movie.douban.com/top250?start='+str(25*i)#25次
    r = requests.get(res, headers=headers, timeout=10)#設(shè)置超時時間
    soup = BeautifulSoup(r.text, "html.parser")#設(shè)置解析方式,也可以使用其他方式。
    div_list = soup.find_all('div', class_='item')
    movies = []
    for each in div_list:
        movie = {}
        moviename = each.find('div', class_='hd').a.span.text.strip()
        movie['title'] = moviename
        rank = each.find('div', class_='pic').em.text.strip()
        movie['rank'] = rank
        info = each.find('div', class_='bd').p.text.strip()
        info = info.replace('\n', "")
        info = info.replace(" ", "")
        info = info.replace("\xa0", "")
        director = re.findall(r'[導(dǎo)演:].+[主演:]', info)[0]
        director = director[3:len(director) - 6]
        movie['director'] = director
        release_date = re.findall(r'[0-9]{4}', info)[0]
        movie['release_date'] = release_date
        plot = re.findall(r'[0-9]*[/].+[/].+', info)[0]
        plot = plot[1:]
        plot = plot[plot.index('/') + 1:]
        plot = plot[plot.index('/') + 1:]
        movie['plot'] = plot
        star = each.find('div', class_='star')
        star = star.find('span', class_='rating_num').text.strip()
        movie['star'] = star
        movies.append(movie)
    for i in movies:
        print(i)

3. 運(yùn)行結(jié)果

        控制臺:

 爬取豆瓣電影信息4

4. 總結(jié)

        在這個實(shí)例中,我們主要學(xué)習(xí)如何去網(wǎng)頁的源碼中找到相應(yīng)的信息,BeautifulSoup可以幫助我們迅速定位,再結(jié)合正則表達(dá)式來完成信息的匹配,下一節(jié)我們把這些數(shù)據(jù)保存到數(shù)據(jù)庫當(dāng)中。


點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時間)