Python如何批量爬取图片?Python爬虫抓取图片代码怎么写

在之前的一些文章之中已经介绍过使用python爬虫是如何将一个网页数据全部抓取回来的,那么有些小伙伴就想知道怎么样才可以只抓取网页之中的图片 。下面会以实际的代码示例来讲解一下python批量爬取图片要怎么去实现,一起往下看看吧 。

Python如何批量爬取图片?Python爬虫抓取图片代码怎么写

文章插图
1.python爬虫说白了就是访问网站然后将数据给抓取返回到程序中,那么网站之中的每一张图片实际上都是以链接的形式保存起来的 。要抓取一个网站中所有图片的话要先右键图片然后点击检查,就可以看到它的链接了,将其复制下来 。
2.图片链接复制下来之后打开python编辑器开始编写代码,首先需要导入requests这个能访问网页的模块 。然后用for循环去迭代的爬取图片,循环的条件就是图片的数量,示例如下所示:
import requestsfrom bs4 import BeautifulSoupfor i in range(5680,5780):    url = f'http://124.223.19.18/datu/{i}.html'    # 网址    response = requests.get(url,headers=headers)    html = response.text    urls = re.findall('<img src=https://www.ycpai.cn/python/"(.*?)" alt=".*?" />
',html) # 用正则表达式解析出图片链接【Python如何批量爬取图片?Python爬虫抓取图片代码怎么写】3.那么在得到了图片链接之后,还需要去进行一下为空判断,否则代码运行时会引发异常 。只有在有图片链接存在的情况下才能调用os模块去将图片给保存起来,先创建出来一个变量作为图片保存的路径 。然后用循环urls这个保存了图片链接的数组,调用open()函数来保存图片即可,示例如下所示:
if urls != [] :    pathname = soup.select(f'#post-{i} > div:nth-child(1) > div > header > h1')[0].text    path = f'D:\\Practice\\pt\\tmp\\{pathname}\\'if not os.path.exists(path):    os.makedirs(path)j = 0    for url1 in urls:    with open(path + str(j) + '.jpg', "wb") as f:         resp = requests.get(url1,headers=headers)           f.write(resp.content)           j+=1以上就是关于“Python如何批量爬取图片?Python爬虫抓取图片代码怎么写”的全部内容了,希望对你有所帮助 。

    推荐阅读