爬网页数据

import re #导入正则表达式模块
import requests #python HTTP客户端 编写爬虫和测试服务器经常用到的模块
import random #随机生成一个数,范围[0,1]
import os

def mkdir(path):
    # 判断路径是否存在
    # 存在     True
    # 不存在   False
    isExists=os.path.exists(path)
 
    # 判断结果
    if not isExists:
        os.makedirs(path) 
 
        print (path+' 创建成功')
        return True
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print (path+' 目录已存在')
        return False
        
        
        
#定义函数方法
def spiderPic(html,keyword):
    print('正在查找 ' + keyword +' 对应的图片,下载中,请稍后......')
    for addr in re.findall('"objURL":"(.*?)"',html,re.S):     #查找URL
        print('正在爬取URL地址:'+str(addr)[0:30]+'...')  #爬取的地址长度超过30时,用'...'代替后面的内容
 
        try:
            pics = requests.get(addr,timeout=10)  #请求URL时间(最大10秒)
        except requests.exceptions.ConnectionError:
            print('您当前请求的URL地址出现错误')
            continue
        
        creatDir = 'D:\\数据\\年龄性别\\myPaData\\woman\\' + keyword
        mkdir(creatDir)
        fq = open(creatDir + '\\' +(keyword+'_'+str(random.randrange(0,1000,4))+'.jpg'),'wb')     #下载图片,并保存和命名
        fq.write(pics.content)
        fq.close()
 
#python的主方法
if __name__ == '__main__':
    #word = input('请输入你要搜索的图片关键字:')
    f = open("D:\\数据\\年龄性别\\myPaData\\woman.txt")
    s=f.read()
    s1 = re.split(' ', s) #利用正则函数进行分割
    
    for word in s1:
        print (word)
        result = requests.get('http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=' + word)
        spiderPic(result.text,word)

猜你喜欢

转载自www.cnblogs.com/crazybird123/p/10139180.html