百度图片爬虫

百度图片爬虫

def use_proxy(proxy_addr,url):
    import urllib.request
    import urllib.parse
    proxy = urllib.request.ProxyHandler({'http':proxy_addr})
    opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
    urllib.request.install_opener(opener)
    fdata = urllib.request.urlopen(url).read()
    ffdata = urllib.parse.urlencode(fdata).encode('utf-8')
    #ffdata = bytes(urllib.parse.urlencode(fdata), encoding='utf8') #Data的数据格式为bytes类型,需要decode()解码,转换成str类型。
    return ffdata

import re
import urllib.request
#import time

tupian= input('输入想要爬取的图片:')
search = urllib.request.quote(tupian) #对想要爬取的内容编码
url = 'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1536904153130_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1536904153131%5E00_1349X654&word='+str(search)
#url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word='+search+'&ct=201326592&v=flip'
#print(url)
req = urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4094.1 Safari/537.36')
#proxy_addrs
#proxy_addr = "http://61.155.164.110:3128"
#data = use_proxy(proxy_addr,url)
try:
    html= urllib.request.urlopen(req).read()#.decode('utf-8') #发送代理数据 #,data = data,method = 'POST'
except urllib.error.URLError as e:
    print(e)
Regex = re.compile(r'"objURL":"(.*?)"')
mo = Regex.findall(str(html))
i = 1
for each in mo:
    try:
        req = urllib.request.Request(each)
        imghtml = urllib.request.urlopen(req).read()
        #time.sleep(1)
    except urllib.error.URLError as e:
        #print(e)
        print('所爬图片'+str(i)+'网址有错! pass!')
    img = open('D:/Desktop/tupian/' + str(i) +'.jpg'  , 'wb') #覆盖掉之前的图片
    img.write(imghtml)
    img.close()
    i = i + 1
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值