之前使用java做过点爬虫,这次学了下python,特意用python来练习了下爬虫,爬了下煎蛋mm照片,代码如下(先记录下,下次想看图片了可以用~):

import urllib.request
import os,re,sys
import base64
from bs4 import BeautifulSoup#获取返回的页面内容
def url_open(url):req = urllib.request.Request(url)#自定义请求头,获取返回的response,煎蛋上的对访问的Ip好像没做什么控制,因此使用同一台机子也可能作死的爬。。不需要使用多ipreq.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36')response = urllib.request.urlopen(url)return response.read()# 得到总的图片页数
def get_page(url):html = url_open(url).decode('utf-8')htmlSoup = BeautifulSoup(html, "lxml");totalPage = int(htmlSoup.find("span","current-comment-page").string[1:-1])return totalPage# 获取图片的url列表
def find_imgs(page_url):html = url_open(page_url).decode('utf-8')hash_list = []img_addr_list = []# 找到图片url的hash值,原来的只需要直接获取地址就行了,煎蛋给地址稍微加了点密,因此直接是爬取不到了,这里可以获取图片url经过编码后的值,获取之后对其进行解码(这部分我也是网上看来的)htmlSoup = BeautifulSoup(html, "lxml");for eachSpan in htmlSoup.findAll("span","img-hash"):hash_list.append(eachSpan.string)# 获取到hash码之后,然后对齐进行解码for eachHashCode in hash_list:# 这段是解码的代码url = base64.b64decode(eachHashCode).decode('utf-8')img_addr_list.append(url)# 得到解码后的url列表return img_addr_list# 本地图片保存地址
def save_imgs(folder, img_addr_list):for each in img_addr_list:filename = each.split('/')[-1]with open(filename, 'wb') as f:img = url_open("http:" + each)f.write(img)def download_pics(folder = 'OOXX', beginPage = 1, endPage = 2):#如果文件夹不存在,那么进行创建,并切换当当前路径  try:if(os.path.isdir(folder) == False):os.mkdir(folder)os.chdir(folder)except FileNotFoundError:print ("路径出毛病啦!")sys.exit(1)# 我这里只对煎蛋网上的妹子图做了爬取url = "http://jandan.net/ooxx/"page_num = int(get_page(url))if beginPage > endPage:print('开始页数大于结束页数!')returnif endPage > page_num:print('页数超过了总数!下载到最后一页!')endPage = page_numfor currentPage in range(beginPage, endPage + 1):page_url = url + "page-" + str(currentPage) + "#comments"img_addr_list = find_imgs(page_url)#print(img_addr_list)save_imgs(folder, img_addr_list)print("第%d页已下载完成" % currentPage)
if __name__ == '__main__':#download_pics()folder = input("输入图片保存路径,默认当前路径下!路径格式(F:/aa/):\n")url = "http://jandan.net/ooxx/"totalPageNum = int(get_page(url))beginPage = int(input("总页数为%d页,请输入开始下载图片的页数:\n" % totalPageNum))endPage = int(input("总页数为%d页,请输入结束下载图片的页数:\n" % totalPageNum))download_pics(folder, beginPage, endPage);

对比java爬虫,python果然简单不少,爬起来简单多了,运行这段代码需要安装些插件,出了问题直接百度就行了,然后按照要求,一般pip安装下就行了。

python爬取煎蛋图片(2018-7-30有效)相关推荐

  1. python爬取煎蛋美眉

    闲来无事,利用python写了个爬虫,爬取煎蛋的美眉.不要问我为什么不爬取淘宝的,大家都是男人,煎蛋上面的美眉质量普遍比其他地方高啊有木有?说正经的,也算是对爬虫一些基本的库的一个总结吧.一如既往,我 ...

  2. python爬取煎蛋网妹子图

    看了小甲鱼的python教学视频,爬取煎蛋网妹子图的代码已经不适用了,网上其它人的代码多有报错,本萌新结合其他人的方法,终于写出一个可行的,在此分享_(:з)∠)_(运行非常慢就是了) import ...

  3. Python 爬取煎蛋妹子图

    煎蛋妹子图网站 最近一直在通过爬虫的练习,来巩固自己的所学习到的 python 基础,和爬虫一些框架的使用.今天的程序就是最近在学习的 selenium 库,通过利用 requests + beaut ...

  4. python 爬取煎蛋网妹子的图片

    昨晚跑完步,回家看了点小甲鱼的python视频,讲了点爬虫相关知识,于是今天兴致来了,尝试自己写写看,晚上再回去看看他是怎么实现的. 写的过程中发现对于正则表达式这块真是个坑,很多时候都我都是将一些u ...

  5. python爬取煎蛋网妹子图,已解密图片~~~~~

    本来想爬一波无聊图,唉,竟然加密了.... 还好是base64 不说了,代码献上 2018.12.14 有效..... import requests from bs4 import Beautifu ...

  6. Python 爬取煎蛋网随手拍

    百度百科对爬虫的定义为:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁, ...

  7. Python爬取煎蛋网的妹子图

    煎蛋网其中有一个版面,全是好看的小姐姐.本着美女是学习的第一动力的原则,写个程序把小姐姐们都下载下来. URL:http://jiandan.net/ooxx 程序结构 分析目标网页 提取目标信息 将 ...

  8. Python 爬取 煎蛋

    这个我是拿来参考的 import requestsdef url_open(url):response = requests.get(url)html = response.contentreturn ...

  9. python爬虫图片实例-Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  10. python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

最新文章

  1. 软件自动测试框架,软件自动化测试框架的研究和实现
  2. mysql数据库入门教程(9):数据的常见约束
  3. apt-get install用发
  4. 三星手机续航测试软件,三星S21系列续航测试简报出炉
  5. 《看聊天记录都学不会C语言?太菜了吧》(12)循环有多容易?你看一眼就怀...
  6. scala char_Scala中的Char数据类型
  7. Web3.0 兴起之际,元宇宙这杯羹怎么分?
  8. css隐藏滚动条、兼容
  9. 看看如何有效地在你的设计工作中使用霓虹色?
  10. jquery序列化serialize()方法空格变为+问题解决参考方法
  11. 详解:离线项目二 每个区域下最受欢迎的产品TOPN
  12. java文本框内容覆盖6_java中读入一个TXT文件到文本框空如何覆盖以前读的内容?...
  13. 设计模式之GOF23访问者模式
  14. 2020年数模美赛参赛心得总结
  15. FANUC机器人_KAREL编程入门(2)_通用IO信号的使用方法
  16. python aic准则_在Python中手工计算Akaike信息标准(AIC)
  17. 使用阿里云安装基础软件
  18. Protractor小结
  19. 【数据分析】基础技术篇 三——matplotlib
  20. ng-init、ng-bind、ng-model和ng-value区别

热门文章

  1. html多个子页显示在一个页面,html多个html页面嵌套在一起
  2. 自学编程需要注意什么? 1
  3. 密码校验规则前台验证
  4. JAVA——实现求s=a+aa+aaa+aaaa+aa...a的值
  5. jenkins插件下载缓慢
  6. 电赛 电容触摸串口屏
  7. 标题中间有虚线或横线,并且居中,而且标题字数不固定
  8. 【jpa】简介和项目生成、API-初级入门
  9. 交通信号灯课程设计_交通信号灯可以教设计师什么
  10. java根据书签添加内容_Java PDF书签——添加、编辑、删除、读取书签