第一个python网络爬虫-爬取图片
写爬虫这个东东,大家互相学习共勉。
这次我们要爬取图片,首先要找到一个图片网页,查看网页源代码,虽然我们不学前端但是前端代码可以了解一下。首先要找到第一张图片的地址,比如这个https://qq.yh31.com/tp/Photo7/ZJBQ/20099/200909291701134159.gif
这是第二张图片地址:
https://qq.yh31.com/tp/Photo7/ZJBQ/20099/200909291701136061.gif
你会发现图片地址的规律前面的网址位置一样,后面的变化,我们可以使用python自带库re中的.?这几个符号自动匹配不一样的地方。其中.?表示匹配任意数量不换行字符。
第一步:我们需要先匹配网址,导入第三方库导入这些库都可以用之前学的import这个函数第三方库需要下载,我使用的是python编辑器是pycharm可以直接在file-settings中
直接搜索requests这个第三方库直接下载调用就ok;
然后就需要找到需要爬取图片的地址 、;
第二步请求下载图片,可以先打开一个空的文件夹然后用with函数中open打开然后使用write函数写入,由于前面我们访问的图片地址是这样tp/Photo7/ZJBQ/20099/200909291701134159.gif所以我们要将完整的地址拼接起来。
讲解的不是太详细一般学过一点python的应该看的差不多下面是源码。大家可以看一下一下大佬的博客互相印证。
#导入第三方库
import requests
import re
def get_urls():
#请求目标网址
response = requests.get('https://qq.yh31.com/zjbq/2920180.html')
#匹配不同图片地址 .*?表示匹配任意数量不换行字符
#<img border = "0" alt = "" src = "/tp/Photo7/ZJBQ/20099/200909291701134159.gif"
url_add = r'<img border="0" .*? src="(.*?)"'
# 找到所有要爬取图片的地址
url_list = re.findall(url_add,response.text)
#print(url_list)
return url_li4st
#拼接完整网址下载数据
def get_gif(url,name):
# 2.1请求要下载图片的uel
response = requests.get(url)
#下载图片到D:\python_yu\photo
with open('D:\python_yu\photo\%d.gif'%name,'wb')as f:
f.write(response.content)
if __name__ == '__main__':
url_list = get_urls()
a = 1
for url in url_list:
com_url='https://qq.yh31.com'+url
get_gif(com_url, a)
a =a+1
#2.2调用get_gif(url)实现数据之间的传递
print(com_url)
这是爬取成功的效果
打开文件夹可以看见图片