某網(wǎng)站小電影的爬取

image.png

當(dāng)然不是某網(wǎng)站的小電影了,我怎們會(huì)是看小電影的人,哈哈哈哈哈!

網(wǎng)站首頁(yè):https://www.dytt8.net/
我們以爬取最新電影為例:https://www.ygdy8.net/html/gndy/dyzz/index.html

image.png

思路:先獲取電影的URL,然后在根據(jù)URL來(lái)分析網(wǎng)頁(yè),最后提取我們需要的信息。

image.png

我們檢查網(wǎng)頁(yè)源碼可以發(fā)現(xiàn),我們所要提取的每一部電影的詳細(xì)URL在<div class="co_content8">下面的每一個(gè)<a>下面的href屬性,只要找到每一部電影的URL,我們離爬取電影詳情就更加靠近了。

獲取每一部電影的詳細(xì)URL

import requests
from lxml import etree
header = {"User-Agent" :
        "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
          "Referer" : "https://www.dytt8.net/"}


BASE_DOMAIN = 'https://www.dytt8.net/html/gndy/dyzz/list_23_1.html'
response = requests.get(BASE_DOMAIN, headers=header)

text = response.text
html = etree.HTML(text)

all_a = html.xpath("http://div[@class='co_content8']//a")
for a in all_a:
    b = "https://www.dytt8.net"
    href = a.xpath("@href")[0]
    if href.startswith('/'):
        a_href = b + href
        # print(a_href)
        url = a_href
        print(url)

接下來(lái)就是最重要的了,對(duì)我們獲取到的電影詳細(xì)頁(yè)面進(jìn)行解析,提取我們需要的信息。

首先獲取電影的發(fā)布時(shí)間和海報(bào)的鏈接:

response = requests.get(url, headers=header)
        text = response.content.decode('gbk')
        html = etree.HTML(text)

        movie = {}
        time = html.xpath("http://div[@class='co_content8']/ul//text()")[0].strip()  # strip用來(lái)清除空格
        movie['time'] = time
        image = html.xpath("http://div[@id='Zoom']//img/@src")[0]
        movie['image'] = image

接下來(lái)就是獲取電影的名字,產(chǎn)地,導(dǎo)演等信息:

Zooms = html.xpath("http://text()")
        for index, info in enumerate(Zooms):
            if info.startswith("◎年  代"):
                info = info.replace("◎年  代", "").strip()
                movie['info'] = info

            elif info.startswith("◎主  演"):
                actors = []
                for x in range(index + 1, len(Zooms)):
                    actor = Zooms[x].strip()
                    # print(actor)
                    if actor.startswith("◎"):
                        break
                    actors.append(actor)
                movie['actor'] = actors
                print(movie)

最后就是我們的運(yùn)行結(jié)果了(示例):


image.png

之后我們可以按照需求,將我們最終爬取到的詳細(xì)信息保存到Mongodb或者是Mysql當(dāng)中,這里就不在演示怎么保存了!好了,到這里我們這個(gè)爬蟲(chóng)小項(xiàng)目就算是完成了。

感興趣的朋友可以自己即嘗試一下,我們下期再見(jiàn)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容