爬取的基本步驟
很簡單,主要是兩大步
向url發起請求
這里注意找準對應資源的url,如果對應資源不讓程序代碼訪問,這里可以偽裝成瀏覽器發起請求。
解析上一步返回的源代碼,從中提取想要的資源
這里解析看具體情況,一般是篩選標簽之中的信息或者資源,有很多篩選的第三方包和方法
貼吧圖片下載
導入 requests 和 lxml兩個第三方包,沒有需要下載
找到我們需要圖片資源的==url ==, 比如我這里是 貼吧圖片測試 http://c.tieba.baidu.com/p/5857827920
然后就是發起請求,拿到源代碼,解析資源獲得下載的url,下載資源到本地
import requests
from lxml import etree# 發起請求拿到網頁源代碼
index_url = 'http://c.tieba.baidu.com/p/5857827920'
response = requests.get(index_url).text# 解析源代碼,篩選數據
selector = etree.HTML(response)
image_urls = selector.xpath('//img[@class="BDE_Image"]/@src')offset = 0
# 拿到url下載對應文件
for image_url in image_urls:image_content = requests.get(image_url).contentoffset += 1# 將數據寫入本地with open("D:/桌面/image_test/{}.jpg".format(offset), 'wb') as f:f.write(image_content)
酷狗音樂歌曲下載
步驟是差不多的,但是這里找 url 變化了一點,找到你想要下載的歌曲,并打開對應的播放頁,如下:
按下F12或者是右鍵點擊檢查,我這里用的是 谷歌瀏覽器,打開網頁的源代碼
選擇上面的網絡或者network,點擊打開
然后刷新一下網頁,發起的網絡請求就可以在這個界面看到,然后篩選媒體或者media,看到后綴為MP3的文件打開,多圖示例:
看到請求網址,復制它,到一個新頁面打開試一下能不能播放,如果可以,那么我們要下載的資源的url就找到了。這個也就是代碼中發起請求的那個資源url
直接上代碼
import requests# url
m_url = 'https://webfs.hw.kugou.com/202308142239/c9d5212c77dac7daf7e3a144b167e5ef/KGTX/CLTX001/d632d77fc37a7f5fee87baf23a0944cb.mp3'# 獲取源代碼headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36m_resp = requests.get(m_url)'}# 這個headers就是請求標頭,可以區別請求來源,會指明來源的操作系統瀏覽器這些信息,程序代碼請求的話我們可以偽裝成瀏覽器,加上這個標頭。m_resp = requests.get(m_url, headers=headers)# 保存數據
with open("D:/桌面/test/geini.mp3", 'wb') as f:f.write(m_resp.content)
請求標頭這里可以找到
最下面的一個。