


Python培训
400-996-5531
要开始讲一下简单的网络爬虫,网络是web,像一张网一样,然后爬虫用的英语是spider,是蜘蛛的意思,意思就是在互联网上捕捉昆虫等的蜘蛛,就叫做网络爬虫是不是很形象!
在python3.0以前,网络爬虫用的都是urllib和urllib2模块,在3.0以后这个库改为urllib.request这个模块了,在下面的调用方法也是这个模块。
首先我们要知道我们在网上爬取什么,比如我们现在就是要将一个获取网页图片的功能,当然了如果你不嫌麻烦可以自己用鼠标右键点击图片另存为~~~不过我们今天要讲的就是用python语言实现这个图片抓取的功能。
学这个之前先学一下正则表达式的知识吧,我这里有文章大家自己可以看一下:
网址:#/s/blog_7003de9e0102x0tu.html
学习完正则表达式之后,我们来看一下百度贴吧上面的图片怎么获取。
打开百度贴吧:https://tieba.baidu.com/p/5306226942
然后用google浏览器查看图片地址
发现都是已src开头以.jpg结尾的
然后我们写下如下的代码:
#coding=utf-8
import urllib.request
import re
url = "https://tieba.baidu.com/p/5306226942";
page = urllib.request.urlopen(url)
html = page.read()
reg = r'src="(.*?\.jpg)"'
imgre = re.compile(reg)
html=html.decode('utf-8')
imglist = re.findall(imgre,html)
x = 0
for imgurl in imglist:
urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
作者开始解释代码的含义:
#coding=utf-8 字符编码是utf-8的字符编码
import urllib.request 导入urllib.request 模块
import re 导入正在表达式模块
url = "https://tieba.baidu.com/p/5306226942"; 设置网页网址是这个
page = urllib.request.urlopen(url) 打开网页
html = page.read() 读取网页文档
reg = r'src="(.*?\.jpg)"' 设置正在表达式字符串
imgre = re.compile(reg) 设置正在表达式字符串变成正则表达式对象然后可以使用
html=html.decode('utf-8') 把读出来的网页编码集设置为utf-8,这是python3.x以后才规定的,python3.0以前没有
imglist = re.findall(imgre,html) 根据正则表达式获取出符合条件的图片链接
然后用循环函数for循环图片
在循环函数里面用urllib.request.urlretrieve(imgurl,'%s.jpg' % x)函数下载图片就可以了,然后把图片名字重新编排了一下,运行之后的效果是这样的
图片就被下载下来了,是不是也很简单?
本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有