国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

Python爬蟲實現百度圖片自動下載

2024-09-09 19:02:15
字體:
來源:轉載
供稿:網友

制作爬蟲的步驟

制作一個爬蟲一般分以下幾個步驟:

分析需求分析網頁源代碼,配合開發者工具編寫正則表達式或者XPath表達式正式編寫 python 爬蟲代碼 效果預覽

運行效果如下:

存放圖片的文件夾:

需求分析

我們的爬蟲至少要實現兩個功能:一是搜索圖片,二是自動下載。

搜索圖片:最容易想到的是爬百度圖片的結果,我們就上百度圖片看看:

隨便搜索幾個關鍵字,可以看到已經搜索出來很多張圖片:

分析網頁

我們點擊右鍵,查看源代碼:

打開源代碼之后,發現一堆源代碼比較難找出我們想要的資源。

這個時候,就要用開發者工具!我們回到上一頁面,調出開發者工具,我們需要用的是左上角那個東西:(鼠標跟隨)。

然后選擇你想看源代碼的地方,就可以發現,下面的代碼區自動定位到了相應的位置。如下圖:

我們復制這個地址,然后到剛才的一堆源代碼里搜索一下,發現了它的位置,但是這里我們又疑惑了,這個圖片有這么多地址,到底用哪個呢?我們可以看到有thumbURL,middleURL,hoverURL,objURL

通過分析可以知道,前面兩個是縮小的版本,hoverURL 是鼠標移動過后顯示的版本,objURL 應該是我們需要的,可以分別打開這幾個網址看看,發現 objURL 的那個最大最清晰。

找到了圖片地址,接下來我們分析源代碼??纯词遣皇撬械?objURL 都是圖片。

發現都是以.jpg格式結尾的圖片。

編寫正則表達式

pic_url = re.findall('"objURL":"(.*?)",',html,re.S)

編寫爬蟲代碼

這里我們用了2個包,一個是正則,一個是 requests 包

#-*- coding:utf-8 -*-import reimport requests

復制百度圖片搜索的鏈接,傳入 requests ,然后把正則表達式寫好

url = 'https://image.baidu.com/search/index?tn=baiduimage&ie=utf-8&word=%E6%A0%97%E5%B1%B1%E6%9C%AA%E6%9D%A5%E5%A4%B4%E5%83%8F&ct=201326592&ic=0&lm=-1&width=&height=&v=index' html = requests.get(url).text pic_url = re.findall('"objURL":"(.*?)",',html,re.S)

因為有很多張圖片,所以要循環,我們打印出結果來看看,然后用 requests 獲取網址,由于有些圖片可能存在網址打不開的情況,所以加了10秒超時控制。

pic_url = re.findall('"objURL":"(.*?)",',html,re.S) i = 1 for each in pic_url:   print each   try:     pic= requests.get(each, timeout=10)   except requests.exceptions.ConnectionError:     print('【錯誤】當前圖片無法下載')     continue

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪陇县| 鄂托克前旗| 溧阳市| 文安县| 南平市| 阜康市| 博白县| 孝昌县| 白沙| 南昌市| 内乡县| 康马县| 阿拉善左旗| 綦江县| 通渭县| 黄大仙区| 滦平县| 西城区| 田林县| 莱西市| 仙游县| 张北县| 德保县| 镇沅| 达州市| 卢氏县| 乌鲁木齐市| 黄平县| 海伦市| 定西市| 射洪县| 林西县| 滕州市| 涡阳县| 宜城市| 全南县| 甘肃省| 张家口市| 巩义市| 红原县| 安宁市|