python爬虫实践(三)——爬取煎蛋网图片
关键词:
BeautifulSoup requests os css time
代码实现:
# -*- coding:utf-8 -*-
'''
爬取煎蛋图片
主要用到了requests BeautifulSoup os文件/目录方法 time计时 以及 css选择器
'''#导入需要的库
import os
import time
import requests
from bs4 import BeautifulSoup#获取url的函数
def get_html(url):#万变不离其宗的找到headersheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}#代理 如果不让访问就用代理进行访问proxies = {'http': '111.23.10.27:8080'}#try和except必定运行一个 python的语法基础try:resp = requests.get(url,headers=headers)except:resp = requests.get(url,headers=headers,proxies=proxies)return resp#创建文件的函数
def mkdir(path):isExists = os.path.exists(os.path.join("D:\jiandan", path)) #os.path.exists()判断文件是否存在if not isExists:print('makedir', path)os.makedirs(os.path.join("D:\jiandan", path)) #os.makedirs()如果不存在就创建文件os.chdir(os.path.join("D:\jiandan", path)) #改变路径,切换到这个路径return True #添加一个判断条件 避免重复添加else:print("already exists")return False#获取图片的函数
def get_imgs():for url in all_page(): #遍历的方式获取path = url.split('-')[-1] #以'-'划分,保留最后一段 就是jiandan文件里面的各个文件名 分析网页所得规律mkdir(path)soup = BeautifulSoup(get_html(url).text, 'lxml') #lxml可以改成html.parser(python标准库),但是没有lxml好allimgs = soup.select("div.text > p > img") #CSS选择器 只要子节点就行了 find的方法也能实现 但是CSS方便download(allimgs)print('ok')
#对页面进行分析,获取所有的url
def all_page():base_url = 'http://jandan.net/ooxx/' #基本的url格式soup = BeautifulSoup(get_html(base_url).text, 'lxml') #先用BeautifulSoup转成文本#找到页码的标签,标签中有[],不是数组,是字符串,去掉最后第一个和最后一个可以得到allpage = soup.find('span', class_="current-comment-page").get_text()[1:-1]urllist = []for page in range(1, int(allpage) + 1): #开始遍历每一页allurl = base_url + 'page-' + str(page) #每一页的格式就是这样的urllist.append(allurl) #添加进去return urllist #返回这个列表#下载函数
def download(list):for img in list:urls = img['src']if urls[0:5] == 'http:': #判断urls前面五个字符是否为http:img_url = urlselse:img_url = 'http:' + urls #缺少http: 就添加补充完整filename = img_url.split('/')[-1] #以'/'划分,保留最后一段with open(filename,'wb') as f: #witn语句处理文件存储发生异常 以二进制方式写入文件try:f.write(get_html(img_url).content) #img的解码方式为.contentprint("Successfule:",filename)except:print("Failed:",filename)if __name__ == '__main__': #时间函数t1 = time.time() #计时get_imgs() #运行函数print(time.time() - t1)
python爬虫实践(三)——爬取煎蛋网图片相关推荐
- python爬虫图片实例-Python爬虫爬取煎蛋网图片代码实例
这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...
- python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例
这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...
- Python爬虫爬取煎蛋网图片代码实例
这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...
- scrapy从安装到爬取煎蛋网图片
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ pip install wheel pip install lxml pip install pyop ...
- 利用C#爬取煎蛋网图片
本程序还有待优化,我只爬取了每个页面的第一张图片,你们可以自己更新优化代码以实现全站爬取的功能. 主要用到的命名空间有: using System; using System.Collections. ...
- python爬取煎蛋网妹子图
看了小甲鱼的python教学视频,爬取煎蛋网妹子图的代码已经不适用了,网上其它人的代码多有报错,本萌新结合其他人的方法,终于写出一个可行的,在此分享_(:з)∠)_(运行非常慢就是了) import ...
- python 爬虫爬取煎蛋网妹子图,我1T的硬盘装满了!
前言 大家好,这里是「brucepk」爬虫 系列教程.此系列教程以实例项目为材料进行分析,从项目中学习 python 爬虫,跟着我一起学习,每天进步一点点. 煎蛋网站 image 很多朋友都反应学 p ...
- Python Scrapy 爬取煎蛋网妹子图实例(一)
前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...
- 利用Selenium爬取煎蛋网妹纸图原来是这么简单!!!
上期说到,下期更新爬取煎蛋网妹纸的selenium版本,它来了!!! 获取页面url信息 获取图片url信息 永久性保存图片 注释: 想要获取GeckoDriver安装包的小伙伴,可以给博主留言或者搜 ...
- Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...
最新文章
- CountVectorizer 统计文本重复率 sklearn API
- Shiro 核心功能案例讲解 基于SpringBoot 有源码
- PKCS7填充标准代码--C语言实现
- C# 对象名无效 问题
- .NET Core全新的配置管理[共9篇]
- php 延时显示代码,php 延时显示代码
- Hibernate一对一主键单向关联
- python的科学计算库总结
- C 库函数 - atoi() 字符串中的数字转换为一个整型
- JVM 排查问题实战
- 数据库存储过程、触发器、函数的使用
- Java8 判空新写法!
- 变色龙配置文件功能介绍
- 世纪互联加入云计算专委会 推动应用进程
- latex beamer 制作ppt,包括动画效果。插入gif图
- 考研路上的那些一战二战三战成功与失败的故事系列之一
- FAT12文件系统 理解
- 看图学习VMWare以及常见问题答疑(转)
- 浙大计算机博士生奖学金,浙大打破读研津贴“大锅饭” 奖学金最高8万元
- 自适应网站适合什么行业
热门文章
- GE 宣布首届“Predix 星火计划”获奖者
- Windows 无法打开“添加打印机”本地打印后台处理程序服务没有运行。请重新启动打印后台处理程序
- 华为认证hcip怎么找工作?考取华为认证hcip证书可以做什么?
- java计算a+aa+aaa+aaaa的和
- iOS 播放系统自带铃声
- asp万年历简易版本
- Coin 2017icpc-西安赛区 牛顿二项式
- 发布园友设计的新款博客皮肤BlueSky
- 短距离无线通信设备的天线设计
- python row函数_Python extmath.row_norms方法代码示例