我們先確定網址,我們先使用開發者工具,定位到我們要的資料。發現,內容就在網頁原始碼中。
url = 'https://www.hexuexiao.cn/tj/WuJiayi/' res = requests.get(url) # print(res.text) html_url = re.findall('<a href="https://www.hexuexiao.cn/a/(\d+).html" rel="external nofollow" >',res.text,re.S) urls = sorted(list(set(html_url)), key=html_url.index)
我們這裡html_url
變數的值是一個正規表示式對象,用來符合網站圖片的連結。程式碼區塊 list(set(html_url))
將清單物件轉換為集合對象,使用 set()
方法將清單物件轉換為集合對象,這是將清單中的元素轉換為集合的方法。 html_url.index
是整數對象,表示 html_url
中各元素在原始 HTML 字串中出現的次數,以此來實現排序。
for url1 in urls: for page in range(0,10): url2 = f'https://www.hexuexiao.cn/a/{url1}-{page}.html' # print(url2) res1 = requests.get(url2) # print(res1.text) url3 = re.findall('<img src=(.*?)/ alt="如何利用Python來收集圖片資料?" ></a>',res1.text,re.S)[0] print(url3) url3=re.sub('',"",url3) print(url3)
我們這段程式碼中的 urls
清單是一個字典,其中鍵是 URL,值是頁碼。在循環中,我們使用 range()
函數從 0 到 9 迭代頁碼。接下來,我們使用 requests.get()
方法分別取得每個頁面的 HTML 程式碼,並使用正規表示式來搭配所有的圖片連結。最後,我們使用 requests.get()
方法取得每個圖片連結的內容,並將其寫入一個檔案中。
我們這段程式碼中的 content
變數的值是從圖片連結 url3
中取得的內容。然後,使用 with open()
語句開啟一個二進位文件,並將 content
寫入檔案中。在這個過程中,num
變數的值是目前檔案中的圖片序號。取得圖片和我們之前取得音訊一樣,都是保存成二進位檔案。
這樣,我們的圖片資料就保存下來了。這裡,我就不展示效果了,原理都是一樣的,找到圖片的位址,我們就可以取得。
以上是如何利用Python來收集圖片資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!