博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取7160
阅读量:7023 次
发布时间:2019-06-28

本文共 2261 字,大约阅读时间需要 7 分钟。

优化后的代码如下,

先用循环创建20个目录,然后循环写入这20个目录,每个最多写入50000

#coding=utf-8 import os import random import sys import urllib.request from bs4 import BeautifulSoup from urllib import error import re ls = ['meinv','zhenrenxiu',"lianglichemo",'rentiyishu','xiaohua','lianglichemo'] file_list = os.listdir("d:\\craw\\") def validateTitle(title):    rstr = r"[\/\\\:\*\?\"\<\>\|]"  # '/ \ : * ? " < > |'    new_title = re.sub(rstr, "_", title)  # 替换为下划线    return new_title def get_file_name():    file = random.sample(file_list,1)[0]    path = 'd:\\craw/'+ str(file);    if  os.path.isdir(path):       total_num = len(os.listdir('d:\\craw\\'+ str(file)))       if total_num >= 50000:          file = get_file_name()    else:       os.mkdir(path)       print("创建目录"+ str(path))    return str(path)+'\\' for k in ls:    for j in range(1,101111):       url_origin = "http://www.7160.com/"+str(k)+"/"+str(j)       print(url_origin)       try:          page_obj = urllib.request.urlopen(url_origin)          page_soup = BeautifulSoup(page_obj,'lxml')          total_page_obj = page_soup.find(text=re.compile('共')).string          pattern = re.compile(r'\d+')          match = pattern.search(total_page_obj)          if match == None:             total_page = 0;          else:             total_page = match.group();          for i in range(1,int(total_page)+1):             if i == 1 :                url = url_origin+"/index.html"             else:                url = url_origin+"/index_"+str(i)+".html"             request = urllib.request.Request(url)             try:                res = urllib.request.urlopen(request)                soup = BeautifulSoup(res,'lxml')                title_obj = soup.find(attrs={"class":"picmainer"})                if title_obj is not None:                   print(url)                   title = title_obj.h1.string                   content = soup.find('img')                   src = content.get("src")                   file_name = validateTitle(title)+".jpg"                   urllib.request.urlretrieve(src, str(get_file_name())+file_name)                   print(str(get_file_name())+file_name+"保存成功")             except Exception  as e:                print("异常"+str(e))       except Exception  as e:                print("异常"+str(e))

  

转载地址:http://tmbxl.baihongyu.com/

你可能感兴趣的文章
《程序员度量:改善软件团队的分析学》一公平和一致性
查看>>
移动医疗行业6大值得关注的玩家解析
查看>>
Facebook 开源 FAISS;MIT 开发 SDV 系统,将合成数据用于机器学习等 | AI 开发者头条...
查看>>
联合光伏一季度太阳能发电站发电44.45万兆瓦时 同比增长67.8%
查看>>
如何建立一个正确的安全架构去做正确的防御?
查看>>
《程序员度量:改善软件团队的分析学》一可重复的成功
查看>>
《Android应用开发攻略》——3.7 用Log.d和LogCat进行调试
查看>>
微软Windows 10浏览器上个月份额再度下跌
查看>>
互联网上的“罪恶之城”:40多国联合行动才端掉它
查看>>
33MW太阳能厂动工 日本福岛开启复兴之路
查看>>
再过22年,你是否还记得雅虎
查看>>
《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一1.2 云计算概述
查看>>
东芝重组另需1万亿日元:已向交易银行申请贷款
查看>>
台湾半导体封测商南茂股东大会通过紫光24亿元入股案
查看>>
分析称未来一年主流科技公司将裁员33.3万人
查看>>
HPE矛头直指思科 与Arista达成软件定义合作关系及销售协议
查看>>
安防监控芯片市场高清化趋势 成行业共识
查看>>
穆迪报告:诺基亚正在缩小与爱立信的差距
查看>>
SAP拟在未来4年内投资22亿美元开发物联网产品
查看>>
维基解密:CIA从2008年就开始监控iPhone供应链
查看>>