python +requests 爬蟲-爬取圖片並進行下載到本地

由於寫12306搶票腳本須要用到爬蟲技術下載驗證碼並進行定位點擊因此這章主要講解,爬蟲,從網頁上爬取圖片並進行下載到本地
 
  • 爬蟲實現方式:
1.首先選取你須要的抓取的URL;
2.將這些URL放入待抓取URL隊列;
3.從待抓取URL隊列中取出待抓取在URL,解析DNS,而且獲得主機的ip,
並將URL對應的 網頁下載下來,存儲進已下載網頁庫中。此外,將這些URL放進已抓取URL隊列。
4.分析已抓取URL隊列中的URL,分析其中的其餘URL,而且將URL放入待抓取URL隊列, 從而進入下一個循環。(下面找的別人的圖)

                                     

 

 
  • 環境 :     
    • python 
    •  re 
    •  requests
  • 正則:
pic_url = re.findall('"objURL":"(.*?)",',html, re.S)

 

  •  小技巧:這邊的正則若是你不太肯定有沒有匹配到的話能夠使用notepad++來匹配下
    • 第一步查看你須要抓取網頁右擊查看源代碼
    • 第二步把代碼貼入notepad++中
    • 第三步f12查詢選擇正則進行匹配
    • 也可用這個網址:http://tool.oschina.net/regex/#
 
  • 廢話很少說直接上代碼
import re
import requests

def download(html):
    #經過正則匹配
    pic_url = re.findall('"objURL":"(.*?)",',html, re.S)
    i = 1
    for key in pic_url:
        print("開始下載圖片:"+key +"\r\n")
        try:
            pic = requests.get(key, timeout=10)
        except requests.exceptions.ConnectionError:
            print('圖片沒法下載')
            continue
        #保存圖片路徑
        dir = '保存路徑' + str(i) + '.jpg'
        fp = open(dir, 'wb')
        fp.write(pic.content)
        fp.close()
        i += 1
def main():
        url = 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=index&pos=history&word=lay'
        result = requests.get(url)
        download(result.text)


if __name__ == '__main__':
        main()
  • 最後找到你下載圖片的文件,而後看下小綿羊的盛世美顏

相關文章
相關標籤/搜索