为什么爬取的图片是HTML,如何用python爬取图片

原标题:如何用python爬取图片

都知道Python的语法很简单易上手,也很适合拿来做爬虫等等,这里就简单讲解一下爬虫入门——简单地爬取下载网站图片。

代码:

其实很简单,我们直接看下整体的代码:

#coding = utf-8

import urllib

import re

def getHtml(url):

page = urllib.urlopen(url)

html = page.read()

return html

def getImg(html):

reg = 'src="(.+?\.jpg)" alt='

imgre = re.compile(reg)

imglist = re.findall(imgre, html)

x = 0

for imgurl in imglist:

urllib.urlretrieve(imgurl, '%s.jpg' % x)

x+=1

return imglist

html = getHtml("http://pic.yxdown.com/list/0_0_1.html")

print getImg(html)

效果

就像这样自动爬取下载图片到本地:

8b89698a9510f753d3b0858960b92f2d.png

导入库:

第一行的utf-8是为了支持中文。

这里我们导入了两个库,分别是 urllib 和 re。urllib 是用来进行 url 网络请求的,而 re 是一个正则表达式匹配的库。这里我们要先对网站进行模拟请求,然后找到网站中的图片进行下载。

请求网站:

第一个方法:getHtml。

这就是用来模拟浏览器访问网站的,参数 url 是要访问的网站链接,这里我们在下面的变量 html 处调用了这个方法,其访问的 url 是一个图片网站,关于选择访问网站还有一点等下要说一下。

在这个方法中,我们先用了 urllib 库的 urlopen 方法来打开网站,然后通过 read 方法来获取网站的源代码,其实就跟在网页中“右键–>检查“是一个意思。最后返回了读取到的网站源代码。

上面说了要注意的一点是,由于很多网站会禁止人们随意爬取数据,有反爬虫的技术,所以在选择要爬取的网站的时候,最好先通过这个方法获取网站源代码,然后 print 输出 html 变量看一下获取到的内容是否是正常的网页源代码,而不是403之类的禁止访问,如果被禁止了,那么自然也不可能爬取到数据了。

原文至:https://www.py.cn/faq/python/13482.html返回搜狐,查看更多

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值