2.win10 下 python2 爬虫美女图片逐步优化

本贴最后更新于 2089 天前,其中的信息可能已经事过境迁
#coding:utf-8 #完成通用爬虫,抓取一个页面队列中所有图片 import requests import re import time from bs4 import BeautifulSoup import uuid import urllib import os headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36' } base_url='http://m.17786.com' base_img_url='https://wcyouxi.sc601.com/file/p/20190803/21/ordurlsatqe.jpg' save_path='E:\\360MoveData\Users\Administrator\Pictures\Camera Roll\crawl\meizi\\' def download_detail_url_soup(url,folerName,num): print url,folerName html=requests.get(url, headers=headers, timeout=50) html.encoding = 'utf-8' soup = BeautifulSoup(html.text,"lxml" ,from_encoding='utf-8') print soup.title try: imgs=soup.select('.contimglist')[0].find_all("img", {"src": re.compile(".*\.jpg")}) for img in imgs: # 获取图片下载地址,并下载图片 # dizhi = li.find('img')['src'] base_path=save_path + folerName if not os.path.isdir(base_path): os.mkdir(base_path) # 图片保存地址 bc = base_path +"\\"+str(num)+ str(uuid.uuid4()) + ".jpg" # 下载图片并保存 urllib.urlretrieve(img.get("src"), bc) except: print "下载失败" pass return -1 def getDetailPageInfo(url): # < div class ="page" > # < a href = "17409_2.html" class ="linkpage shpage" > 上一页 < / a > # < a href="17409.html" > 首页 < / a > # < a name="allpage" class ="allpage" > < span class ="nowpage" > 3 < / span > / 18 < / a > # < a href="/rihan/17409_18.html" > 尾页 < / a > # < a href="/rihan/17409_4.html" class ="linkpage" > 下一页 < / a > # < / div > html = requests.get(url, headers=headers, timeout=50) html.encoding = 'utf-8' soup = BeautifulSoup(html.text, "lxml", from_encoding='utf-8') print soup.title print soup.select('.page a') pageInfo={} for page in soup.select('.page a'): if page.text.find("/") != -1: pageInfo['total'] = str(page.text)[page.text.find("/")+1:] print pageInfo url.rfind("/") baseUrl=url[0:url.rindex("/")+1] base_detail_url=url[url.rindex("/")+1:] base_detail_url=base_detail_url[0:base_detail_url.rfind(".")] if base_detail_url.rfind("_")>0: base_detail_url=base_detail_url[0:base_detail_url.rfind("_")] pageInfo['first']=base_detail_url; folderName=soup.title for num in range(int(pageInfo['total'])): if num ==0: detail_html_url= baseUrl+pageInfo['first']+".html" else: detail_html_url= baseUrl+pageInfo['first']+"_"+str(num+1)+".html" download_detail_url_soup(detail_html_url,folderName.string,num+1) def getAllPageInfo(url): # < div class ="page" > # < a href = "17409_2.html" class ="linkpage shpage" > 上一页 < / a > # < a href="17409.html" > 首页 < / a > # < a name="allpage" class ="allpage" > < span class ="nowpage" > 3 < / span > / 18 < / a > # < a href="/rihan/17409_18.html" > 尾页 < / a > # < a href="/rihan/17409_4.html" class ="linkpage" > 下一页 < / a > # < / div > html = requests.get(url, headers=headers, timeout=50) html.encoding = 'utf-8' soup = BeautifulSoup(html.text, "lxml", from_encoding='utf-8') print soup.title print soup.nav print soup.find_all("ul", class_="tag",limit=12)[0] allIndexList=[] allIndexList.append('/meinv/'); allIndexList.append('/mxmn/'); for index in soup.find_all("ul", class_="tag",limit=12)[0].find_all("li"): allIndexList.append(index.find("a").get("href")) allDetailPageInfos=[] for detailCrawUrl in allIndexList: detail_crawl_url=base_url+detailCrawUrl print detail_crawl_url htmla = requests.get(detail_crawl_url, headers=headers, timeout=50) htmla.encoding = 'utf-8' soupa = BeautifulSoup(htmla.text, "lxml", from_encoding='utf-8') print soupa.title for detailPageInfo in soupa.find("div",attrs={'id':'list'}).find_all("li"): getDetailPageInfo(base_url+detailPageInfo.find("a").get("href")) if __name__ == '__main__': print "begin" # push_redis_list(6952)#开启则加任务队列.其中的值请限制在5400以内。不过是用于计算页码的 # push_index_all_url_to_redis_list()#//从首页爬取所有url # detail_url='http://m.772586.com/mxmn/17313.html' # detail_url='http://m.772586.com/rihan/17409_5.html' # download_detail_url_soup(detail_url,"test") # getDetailPageInfo(detail_url) detail_url = 'http://m.772586.com/' getAllPageInfo(detail_url); #get_big_img_url()#开启则运行爬取任务
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 妹子
    23 引用 • 439 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖 • 1 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 159 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9645 引用 • 43860 回帖 • 93 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 165 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    189 引用 • 1057 回帖 • 4 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    170 引用 • 1529 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 60 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 547 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖 • 1 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 105 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 649 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    54 引用 • 41 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 652 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 177 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    44 引用 • 208 回帖 • 3 关注
  • Visio
    1 引用 • 2 回帖 • 4 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 507 关注
  • 叶归
    5 引用 • 16 回帖 • 11 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 111 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖 • 1 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 132 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注