Python爬取网站图片,Python爬虫爬取网页图片,Python爬虫爬取网站图片

Python爬取网站图片,Python爬虫爬取网页图片,Python爬虫爬取网站图片

本文主要介绍Python爬虫抓取网站图片。这次python3主要使用请求,beautifulsoup主要用于解析图片URL,基本可以完成抓取功能。有需要的朋友可以参考一下。

这次python3主要用请求,美汤主要用来解析图片网址,基本可以完成抓取图片的功能。

这个爬虫,当然大部分人都是靠爬美图入门,我当然不会墨守成规。首先,我刚找到一个爬美图的网站。

从bs4导入BeautifulSoup

导入请求

if __name__=='__main__ ':

URL=' http://www . 27270 . com/tag/649 . html '

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/55 . 0 . 2883 . 87 Safari/537.36 ' }

req=requests.get(url=url,headers=headers)

req=requests.get(url=url,headers=headers)

req.encoding='gb2312 '

html=req .文本

bf=BeautifulSoup(html,' lxml ')

targets_url=bf.find('div ',class_='w1200 oh ')。find_all('a ',target='_blank ')

对于targets_url中的每个:

img _ req=requests . get(URL=each . get(' href '),headers=headers)

img_req.encoding='gb2312 '

html=img_req.text

bf=BeautifulSoup(html,' lxml ')

img_url=bf.find('div ',class_='articleV4Body ')。find('img')['src']

name=each.img.get('alt ')'。' jpg '

path=r ' c:\ Users \ ASUS \ Desktop \ new folder '

文件名=路径名' \\ '

尝试:

req1=requests.get(img_url,headers=headers)

f=打开(文件名,“wb”)

f.write(req1.content)

f.close()

除了:

打印(“某些错误”)

期间遇到过访问img_url时总是报错,连接主机失败的情况。一开始以为网址加了防爬,结果单独拿出一个网址,却很容易访问,很疑惑。最后咨询了老板,告诉我每个img_url都要试试。也许某个网址有问题。我找的时候有个汉奸,结果img_url第一。

我同时也是个火影迷,掌握基本方法后准备试试爬取火影图片,也是网址找了个网址:

http://desk.zol.com.cn/dongman/huoyingrenzhe/

你可以看到霍颖的图片是以图集的形式存储的,所以这次下载比刚才多了一点步骤。

看网站的源码,很容易发现图集的链接都在class='photo-list-padding '的李标签里,链接不全。

点击其中一个链接,http://desk.zol.com.cn/dongman/huoyingrenzhe/(前面那个是浏览器自动完成的,需要你自己在代码里完成)

你可以在这个图库中看到图片的下载地址和打开下一张图片的链接。

知道网站的图片结构后,我们就开始写代码。我们筛选出图集的链接后,会通过图集的链接找到第一张图片的下载地址和第二张图片的链接,通过第二张图片的链接找到第二张图片的下载地址和第三张图片的链接。然后,我们将开始第二个地图集,直到所有的地图集都下载完毕。代码如下。为了方便流通,我们把下载图片的功能集成为下载功能,把解析图片的功能集成为解析。

从bs4导入BeautifulSoup

导入请求

定义下载(img_url,headers,n):

req=requests.get(img_url,headers=headers)

name='%s'%n '=' img_url[-15:]

path=r ' c:\ Users \ ASUS \ Desktop \ hokage wallpaper 1 '

文件名=路径名' \\ '

f=打开(文件名,“wb”)

f.write(请求内容)

f .关闭

def parses_picture(url,headers,n):

URL=r ' http://desk . zol . com . cn/' URL

img_req=requests.get(url,headers=headers)

img_req.encoding='gb2312 '

html=img_req.text

bf=BeautifulSoup(html,' lxml ')

尝试:

img_url=bf.find('div ',class_='photo ')。查找(' img ')。get('src ')

下载(img_url,标题,n)

url1=bf.find('div ',id='photo-next').a.get('href ')

parses_picture(url1,headers,n)

除了:

打印(U' ends中的%s图片收藏“%n”)

if __name__=='__main__ ':

URL=' http://desk . zol . com . cn/dong man/huoying renzhe/'

headers={ ' User-Agent ':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/55 . 0 . 2883 . 87 Safari/537.36 ' }

req=requests.get(url=url,headers=headers)

req=requests.get(url=url,headers=headers)

req.encoding='gb2312 '

html=req .文本

bf=BeautifulSoup(html,' lxml ')

targets_url=bf.find_all('li ',class_='photo-list-padding ')

n=1

对于targets_url中的每个:

url=each.a.get('href ')

parses_picture(url,头,n)

n=n 1

期间遇到过这样的情况,每次一个图集走到最后都会出现错误,因为找不到下一张图片的链接,所以加了一个try语句来捕捉这个错误,让程序继续运行。使用bf,它比正则表达式更简单,并且很容易通过标签属性找到想要的信息。

下载情况

这就是这篇关于Python爬虫抓取网站图片的文章。关于Python抓取网站图片的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: