實用爬蟲-03-爬取視訊教程課程名+連結+下載圖片

肖朋偉發表於2018-10-29

實用爬蟲-03-爬取視訊教程課程名+連結+下載圖片

很長時間不寫爬蟲的學習筆記了,想到用爬蟲來動態的更新資料,簡單的搭一個頁面的框架,加上爬蟲獲取資料,豈不是省了自己建庫又有了優質的資料來源

當然我們寫爬蟲不能過分的爬取,有些涉及原創的東西,最好不好私自爬取,好,政治正確哈

一、爬蟲的目的:

實用爬蟲-03-爬取視訊教程課程名+連結+下載圖片

二、注意事項:

下載圖片,我是放在了 pic 目錄下,需要自己建立和 Python 檔案同級的目錄

三、不多說,在註釋上聊:

# coding:utf-8
'''
使用爬蟲獲取教程網站資訊:
1.獲取課程視訊連線
2.獲取課程名
3.獲取圖片連線,並下載圖片

作者:cnblogs.com/xpwi
'''

import re, requests

# 目標地址
url = "https://www.jikexueyuan.com/course/android/?pageNum=2"

if __name__ == '__main__':

    # 獲取頁面 html
    html = requests.get(url).text
    # print(html)

    # 獲取 title
    title = re.findall("<title>(.*?)</title>", html)
    print(title[0])

    # 獲取24門課程的連結
    h2 = re.findall('<h2 class="lesson-info-h2">(.*?)</h2>', html)
    h2_a = ""
    for i in h2:
        # 因為正則獲取到的是一個陣列,把每個元素合起來到一個長字串中
        h2_a = h2_a + i

    name = re.findall('">(.*?)</a>', h2_a)
    href = re.findall('href="//(.*?)" ',h2_a)

    # print("--------課程名稱-------------")
    # for i in name:
    #     print(i)

    # print("--------課程連結-------------")
    # for i in href:
    #     print(i)
    i = 0
    for i in range(0, len(name)):
        print('課程名:' + name[i] + '\n課程連線:' + href[i])


    # 獲取24張圖片的連結
    img_href = re.findall('<img src="(.*?)"',html)
    print("--------下載圖片-------------")

    i = 0
    for m in img_href:
        # 由於沒有精確匹配,並不是所有連線都是我們要的課程的連線,排出第一張圖片
        if m == '//e.jikexueyuan.com/headerandfooter/images/logo.png?t=1513326254000':
            continue
        print('正在下載:' + m)

        # 爬取每個網頁圖片的連線
        pic = requests.get(m)

        # 開啟 pic 同級目錄【必須手動建立好】
        fp = open('pic\\' + str(i) + '.jpg', 'wb')

        # 寫入本地檔案
        fp.write(pic.content)

        # 目前沒有想到更好的方式,暫時只能寫一次,關閉一次,如果有更好的歡迎討論
        fp.close()
        i += 1

四、執行結果:

實用爬蟲-03-爬取視訊教程課程名+連結+下載圖片

圖片截圖:

實用爬蟲-03-爬取視訊教程課程名+連結+下載圖片

相關文章