python 斗图图片爬虫
生活随笔
收集整理的這篇文章主要介紹了
python 斗图图片爬虫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?搗鼓了三小時,有一些小Bug,望大佬指導
廢話不說,直接上代碼:
#!/usr/bin/python3 # -*- coding:UTF-8 -*- import os,re,requests from urllib import request,parseclass Doutu_api(object):def __init__(self):self.api_html = r'http://www.doutula.com/search?keyword=%s'self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 ''(KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}self.path = os.path.dirname(os.path.realpath(__file__))+'\\temp'def make_path(self,path=''):#返回假為已創建,否則創建新文件夾self.path = self.path+'\\'+pathif os.path.exists(self.path): # 判斷文件夾是否存在return Falseelse:os.mkdir(self.path) # 創建文件夾return Truedef get_img_html(self,html):self.make_path(path=html)html = self.api_html%parse.quote(html)pattern = re.compile(u'<a.*?class="col-xs-6 col-md-2".*?href="(.*?)".*?style="padding:5px;">.*?</a>',re.S)pattern_img = re.compile(u'<td>.*?<img.*?src="(.*?)".*?alt="(.*?)".*?οnerrοr=".*?">.*?</td>',re.S)try:req = request.Request(html, headers=self.headers)imgs = request.urlopen(req)imgs = imgs.read().decode('utf-8')imgs = re.findall(pattern, imgs)for img in imgs:req = request.Request(img, headers=self.headers)imgurl = request.urlopen(req).read().decode('utf-8')imgurl =re.findall(pattern_img, imgurl)with open(self.path+'\\{}.png'.format(imgurl[0][1].replace('/','-')), 'wb') as file:response = requests.get(imgurl[0][0]).content # 下載圖片file.write(response) # 讀取圖片print('已完成下載,圖片地址:',self.path)except Exception as e:print(e)return Nonedoutu = Doutu_api() doutu.get_img_html(input('斗圖內容關鍵字:'))?測試成功
轉載于:https://www.cnblogs.com/canmeng/p/9180046.html
總結
以上是生活随笔為你收集整理的python 斗图图片爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio超级玛丽源码
- 下一篇: 牛客国庆集训派对Day5B电音之王(Mo