整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

十分钟教你如何快速掌握Python爬虫核心技术,批量

十分钟教你如何快速掌握Python爬虫核心技术,批量爬取网络图片

果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得简单、容易上手。

对于小白来说,爬虫可能是一件非常复杂,技术门槛很高的事情,其实只要掌握正确方法,在短时间内也是能够做到精通的!这里给你一条平滑的,零基础快速入门的学习路径。

先来带你简单的爬取一下网络图片:

1. 概述

本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。下载图片的步骤如下:

(1)获取网页html文本内容;

(2)分析html中图片的html标签特征,用正则解析出所有的图片url链接列表;

(3)根据图片的url链接列表将图片下载到本地文件夹中。

如果你是零基础小白,看不懂,没关系!完整项目代码+视频使用教程+Python编程学习资料都给你带走,有了这些 不怕你学不会! 不收取任何费用哦

2. urllib+re实现


#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import urllib
import re
# 根据url获取网页html内容
def getHtmlContent(url): 
 page=urllib.urlopen(url)
 return page.read()
# 从html中解析出所有jpg图片的url
# 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
def getJPGs(html): 
 # 解析jpg图片url的正则 
 jpgReg=re.compile(r'<img.+?src="(.+?\.jpg)" width') # 注:这里最后加一个'width'是为了提高匹配精确度 
 # 解析出jpg的url列表 
 jpgs=re.findall(jpgReg,html)
 return jpgs
# 用图片url下载图片并保存成制定文件名
defdownloadJPG(imgUrl,fileName): 
 urllib.urlretrieve(imgUrl,fileName)
 # 批量下载图片,默认保存到当前目录下
def batchDownloadJPGs(imgUrls,path='./'): 
 # 用于给图片命名 
 count=1 
 for url in imgUrls:
 downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
 count=count + 1
# 封装:从百度贴吧网页下载图片
def download(url): 
 html=getHtmlContent(url)
 jpgs=getJPGs(html)
 batchDownloadJPGs(jpgs)
def main(): 
 url='http://tieba.baidu.com/p/2256306796' 
 download(url)
if __name__=='__main__':
 main()

运行上面脚本,过几秒种之后完成下载,可以在当前目录下看到图片已经下载好了:


3. requests + re实现

下面用requests库实现下载,把getHtmlContent和downloadJPG函数都用requests重新实现。


#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import requests
import re
# 根据url获取网页html内容
def getHtmlContent(url): 
 page=requests.get(url):
 return page.text
# 从html中解析出所有jpg图片的url
# 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
def getJPGs(html): 
 # 解析jpg图片url的正则 
 jpgReg=re.compile(r'<img.+?src="(.+?\.jpg)" width') # 注:这里最后加一个'width'是为了提高匹配精确度 
 # 解析出jpg的url列表 
 jpgs=re.findall(jpgReg,html)
 return jpgs
# 用图片url下载图片并保存成制定文件名
def downloadJPG(imgUrl,fileName): 
 # 可自动关闭请求和响应的模块 
 from contextlib import closing
 with closing(requests.get(imgUrl,stream=True)) as resp:
 with open(fileName,'wb') as f:
 for chunk in resp.iter_content(128):
 f.write(chunk)
# 批量下载图片,默认保存到当前目录下
defbatchDownloadJPGs(imgUrls,path='./'): 
 # 用于给图片命名 
 count=1 
 for url in imgUrls:
 downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
 print '下载完成第{0}张图片'.format(count)
 count=count + 1
# 封装:从百度贴吧网页下载图片
def download(url): 
 html=getHtmlContent(url)
 jpgs=getJPGs(html)
 batchDownloadJPGs(jpgs)
def main(): 
 url='http://tieba.baidu.com/p/2256306796' 
 download(url)
if __name__=='__main__':
 main()

输出:和前面一样。

不知道这篇简单的python爬虫小案例有没有帮到你呢?无论你是零基础小白看不懂还是看懂了想体验高难度!小伙伴们都不用担心~

小编已经为你准备好了Python爬视频教程

请关注+私信回复小编我关键词“学习”就可以拿到这份份我为大家准备的13天学会Python爬虫分布式

十三天具体干什么?

第一天:

第二天:

第三天:

第四天:

第五天:

第六天:

第七天:

第八天:

第九天:

第十天:

第十一天:

第十二天:

第十三天:

每天三两个小时,13天轻松拿下python爬虫,你就说牛不牛!溜不溜!

小编已经把这些视频资料全部打包整理好了,如果你需要的话,请转发本文+关注并私信小编:“学习”就可以免费领取哦

、背景

今天项目中牵涉到一个html图片生成的需求,然后就发现了这个第三方的js -- html2canvas

PS: 附上官方使用文档 http://html2canvas.hertzen.com/

二、说一下简明使用教程吧

①引入JS

可以在官方下载,也可以使用CDN

②在需要的html中指定操作元素

<div id="capture" style="padding:2rem;">

// your code ...

</div>


③调用指定的方法

export(){

html2canvas(document.querySelector("#capture")).then(canvas=> {
saveFile(canvas.toDataURL(),"ccc.png");
});
}

saveFile(data, filename){
const save_link=document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href=data;
save_link.download=filename;
const event=document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
save_link.dispatchEvent(event);
};


三、附上主要代码段

in10系统的搜索功能相比于之前的系统,已经有了很大的提高,但是由于各种原因,有相当一部分的电脑依然使用的是win7甚至更多老的操作系统。在进行搜索时,很容易卡死。学点python就可以把指定文件夹及子文件夹里的所有图片都展示出来,并且能在浏览器上查看哦!

处理问题之前,先撸撸思路:

python程序读取路径文件及子文件夹里面的所有的文件 → 把指定格式的文件(图片png/jpg)组合成浏览器可读取的路径格式 → 把路径内容写入文件 → 文件保存为html格式

首先就是要引入处理本地文件的库:os

下面这段代码是读取文件并且把读取到的文件显示出来,好让你知道程序刚刚做了什么

下面再根据上面的原理,把读取的文件组合成浏览器只可以读取的路径。为了保证读取效率,一个html文件只保存500个图片路径。

python读取本地文件夹及子文件夹的文件

下面就是运行的效果

下面就是保存的html图片文件,想让图片显示多大就显示多大

感觉有用,请关注我,Python实战编程,为应用而学,我是【python陈】,分享各种实用性python技术源码。

需要源码文件,可以留言,或者私信我

haiyouhaohuo