python图片爬虫

先附上代码
import urllib.request
import requests
import re

#爬取网页地址
url = "http://news.ifeng.com/a/20161115/50258273_0.shtml"

#获取网页
html = requests.get(url)
#指定网页编码为utf-8
html.encoding = "utf-8"

#打印出网页信息
print (html.content.decode())

#利用正则表达式获取图片网址
reg = r'src="(.*?\.jpg)"'
img = re.compile(reg)
imglist = re.findall(img, html.content.decode())
#打印出所有的图片链接
print (imglist)

#下载图片
x = 0
for imgurl in imglist:
    urllib.request.urlretrieve(imgurl,'E:\\python\\爬虫数据\\%s.jpg'%x)
    x = x + 1



函数详解:

一、requests.get(url)

requests.get()requests库里的一个函数,作用是获取url(网址)的请求。
其中,requests.get(url).content是显示其文本,requests.get(url).content.decode()是对其文本进行解码。




二、re.compile(reg)

re.compile(reg)re库里的一个函数,用来优化正则的,它将正则表达式转化为pattern,re.findall(pattern, string)的调用方式就转换为 pattern.search(string)的调用方式。它自己使用没有什么意义,这里与re.findall()一起使用。其中reg是一个正则表达式。(正则表达式简单教程




三、re.findall(img, html.content.decode())

re.fdindall()返回的对象是一个列表。它返回的是在html.content.decode()中利用compile()匹配到的的信息。在这里它返回的就是图片的链接。




四、urllib.request.urlretrieve()

这个函数是下载用的。里面的参数是(下载链接,‘保存地址’%x)。结合代码,这个x是爬取图片的名称。
在这里插入图片描述




Ps:这个代码只能爬取静态网站,动态网站不能爬取。所以换一个网站可能就爬取不到了。

动态网页爬虫来啦!!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值