python学习笔记(12)--爬虫下载煎蛋网图片
说明:
1. 这个其实是在下载漫画之前写的,比那个稍微简单点,之前忘放到博客备份了。
2. 不想说啥了,总结放到漫画那个里面吧!
import urllib.request
import re
import os # http://jandan.net/ooxx/page-2381#comments
# <span class="current-comment-page">[2381]</span>
# <img src="//wx4.sinaimg.cn/orj360/797ccd21gy1fdcjecuo1jj20qo0usacj.jpg" style="max-width: 480px; max-height: 750px; background-color: rgb(246, 161, 181);">
# <a href="//ww1.sinaimg.cn/large/6715afcfgw1ef4zrjdaswj20js0qotag.jpg" target="_blank" class="view_img_link">[查看原图]</a>
url = "http://jandan.net/ooxx/page-2381#comments"
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0"} # 打开主网站url,获取整个html字符串
req = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(req)
html = response.read().decode("utf-8")
# print(html[0:1000])
# 分析html字符串,找出页数和图片地址
page = html.find("current-comment-page")
page = html[page+23:page+27]
# print(page)
htmlPages = ""
for i in range(int(page)-10,int(page)):
urlPage = "http://jandan.net/ooxx/page-"+str(i)+"#comments"
reqPage = urllib.request.Request(url=urlPage,headers=headers)
responsePage = urllib.request.urlopen(reqPage)
htmlPages += responsePage.read().decode("utf-8")
regImg = r"//[0-9a-z]+\.sinaimg\.cn/large/[0-9a-z]+\.jpg"
imgUrl = re.findall(regImg,htmlPages)
# print(imgUrl)
imgNum = len(imgUrl)
# print(imgNum)
# 创建文件夹
os.mkdir("test")
# 切换到这个文件夹
os.chdir("test") # 打开每个图片地址,保存图片到本地
for i in range(imgNum):
req = urllib.request.Request(url="http:"+imgUrl[i],headers=headers)
responseImg = urllib.request.urlopen(req)
img = open(str(i)+".jpg","wb")
img.write(responseImg.read())
img.close
小甲鱼源码(论坛里复制来的,其实是可以运行的,每个图片地址加上http:就可以了):
import urllib.request
import os
import random
# 煎蛋网已经禁用爬虫了,所以此程序无法运行
def url_open(url):
req = urllib.request.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36')
# iplist = ['111.197.141.57:9797','116.228.236.219:8080','120.26.51.101:8118','113.222.80.216:3128','117.90.1.88:9000']
# proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})
# opener = urllib.request.build_opener(proxy_support)
# urllib.request.install_opener(opener)
response = urllib.request.urlopen(url)
html = response.read()
return html def get_page(url):
html = url_open(url).decode('utf-8')
a = html.find('current-comment-page') + 23
b = html.find(']',a)
return html[a:b] def find_imgs(url):
html = url_open(url).decode('utf-8')
img_addrs = []
a = html.find('img src=')
while a != -1:
b = html.find('.jpg', a, a + 100) if b != -1:
img_addrs.append(html[a+9:b+4])
print('图片地址:'+html[a+9:b+4])
else:
b = a + 9
a = html.find('img src=', b)
return img_addrs
def save_imgs(folder, img_addrs):
for each in img_addrs:
filename = each.split('/')[-1]
with open(filename, 'wb') as f:
img = url_open("http:"+each)
f.write(img) def download_mm(folder = 'Xman', pages = 1):
os.mkdir(folder)
os.chdir(folder)
url = "http://jandan.net/ooxx/"
page_num = int(get_page(url))
for i in range(pages):
page_num -= i
page_url = url + 'page-' + str(page_num) + '#comments'
img_addrs = find_imgs(page_url)
save_imgs(folder, img_addrs)
if __name__ == '__main__':
download_mm()
python学习笔记(12)--爬虫下载煎蛋网图片的更多相关文章
- python3爬虫.4.下载煎蛋网妹子图
开始我学习爬虫的目标 ----> 煎蛋网 通过设置User-Agent获取网页,发现本该是图片链接的地方被一个js函数代替了 于是全局搜索到该函数 function jandan_load_im ...
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...
- Python 爬虫 爬取 煎蛋网 图片
今天, 试着爬取了煎蛋网的图片. 用到的包: urllib.request os 分别使用几个函数,来控制下载的图片的页数,获取图片的网页,获取网页页数以及保存图片到本地.过程简单清晰明了 直接上源代 ...
- scrapy从安装到爬取煎蛋网图片
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/pip install wheelpip install lxmlpip install pyopens ...
- python学习笔记(10)--爬虫下载煎蛋图片
说明: 1. 有很多细节需要注意! 2. str是保留字,不要作为变量名 3. 保存为txt报错,encoding=utf-8 4. 403错误,添加headers的方法 5. 正则match只能从开 ...
- python学习笔记12 ----线程、进程
进程和线程的概念 进程和线程是操作系统中两个很重要的概念,对于一般的程序,可能有若干个进程,每一个进程有若干个同时执行的线程.进程是资源管理的最小单位,线程是程序执行的最小单位(线程可共享同一进程里的 ...
- python学习笔记:"爬虫+有道词典"实现一个简单的英译汉程序
1.有道的翻译 网页:www.youdao.com Fig1 Fig2 Fig3 Fig4 再次点击"自动翻译"->选中'Network'->选中'第一项',如下: F ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- Python学习笔记22:Django下载并安装
Django它是一个开源Web应用程序框架.由Python书面. 通过MVC软件设计模式,这种模式M,视图V和控制器C. 它最初是一个数字新闻内容为主的网站已经发展到管理劳伦斯出版集团.那是,CMS( ...
随机推荐
- CitrixSmartAuditor安装报错解决方法
报错1:安装过程中报错 解决方法: SQLServer的配置: http://www.cnblogs.com/weizhengLoveMayDay/p/3267756.html 报错2:无法连接到Sm ...
- VC2012编译CEF3-转
原文地址:http://blog.csdn.net/tiplip/article/details/42047815 下载 代码下载:http://cefbuilds.com/,CEF 3.2556.1 ...
- login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- PHP扩展的基本结构
1.下载php源码 git clone https://github.com/php/php-src.git 2,创建扩展 cd php-src/ext/ ./ext_skel --extname= ...
- aop注解 事例
spring.xml中aop的配置 <!-- aop的配置 --> <aop:config> <!-- 切入点表达式 --> <aop:pointcut ex ...
- 从gentoo回归Arch,上组图
Arch一直在我笔记本里边,只是玩gentoo时我不进Arch了,现在回归Arch,升级到了最新,用上了gentoo的最新的2.6.31内核(自己配置,无initrd),引导程序用的grub4dos: ...
- 初学HTML一些基本控件语句
<html> <head> <title> 这是网页的标题</title> </head> <body> <h2>& ...
- Web前端开发笔试&面试_02(others)
AL>> 1.CSS 3 如何实现旋转图片? 答:transform : rotate 2.写CSS 的工具? 答:LESS.SASS 3.JavaScript 倒计时? 答:setTim ...
- 【LeetCode】14. Longest Common Prefix (2 solutions)
Longest Common Prefix Write a function to find the longest common prefix string amongst an array of ...
- 2014年15款新评定的最佳PHP框架
通常,框架都会被认为是帮助开发者快速设计和开发动态网站的软件应用.每个月都有极大数量的新发布的 PHP 框架,使网站开发更简单更高效. 如果你是位 PHP 开发者,正在寻找当前最好的一些 PHP 框架 ...