實用爬蟲-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
四、執行結果:
圖片截圖: