python爬网站图片教程_爬虫【一】python爬虫入门案例-爬取图片

前言:

学习了python的基础知识后,我们来写一个简单的爬虫案例,本案例用到了urllib和re库。

本案例的爬虫原理:

首先我们用urllib库来模拟浏览器访问网站的行为,由给定的网站链接(url)得到对应网页的源代码(html标签)。其中,源代码以字符串的形式返回。

然后我们用正则表达式re库在字符串(网页源代码)中匹配表示图片链接的小字符串,返回一个列表。最后循环列表,根据图片链接将图片保存到本地。

其中urllib库的使用在python2.x和python3.x中的差别很大,本案例以python3.x为例

正文:

直接上代码:

'''

第一个简单的爬虫程序,使用python3.x和urllib与re库

'''

import urllib.request

import re

def getHtmlCode(url): # 该方法传入url,返回url的html的源码

headers = {

'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'

}

url1 = urllib.request.Request(url, headers=headers) # Request函数将url添加头部,模拟浏览器访问

page = urllib.request.urlopen(url1).read() # 将url页面的源代码保存成字符串

page = page.decode('UTF-8') # 字符串转码

return page

def getImg(page): # 该方法传入html的源码,经过截取其中的img标签,将图片保存到本机

# findall(正则,代表页面源码的str)函数,在字符串中按照正则表达式截取其中的小字符串

# findall()返回一个列表,列表中的元素是一个个的元组,元组的第一个元素是图片的url,第二个元素是url的后缀名

# 列表形如:[('http://www.zhangzishi.cc/732x120.gif', 'gif'), ('http://ww2.sinaimg.cn/qomyo.jpg', 'jpg')

imgList = re.findall(r'(http:[^\s]*?(jpg|png|gif))"',page)

x = 0

for imgUrl in imgList: # 列表循环

print('正在下载:%s'%imgUrl[0])

# urlretrieve(url,local)方法根据图片的url将图片保存到本机

urllib.request.urlretrieve(imgUrl[0],'E:/pythonSpiderFile/img/%d.jpg'%x)

x+=1

if __name__ == '__main__':

url = 'http://www.zhangzishi.cc/20151004mt.html'

page = getHtmlCode(url)

getImg(page)

上述代码在找图片的url时,我们用的是re(正则表达式)。re用得好的话会有奇效,用的不好,效果极差。

既然我们得到了网页的源代码,我们何不根据标签的名称来得到其中的内容。

接下来要介绍的BeautifulSoupl库就能根据标签的名称来得到标签的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值