用python抓取网页的图片

python抓取数据

想要做数据分析师就要知道如何将网页上的数据获取。
比如我要去获取http://pic.netbian.com/4kdongman/index_2.html这个网页里所有的图片。

  1. 首先电脑里应该先有安装python和配置好python的环境变量。
  2. 然后我要先建一个文件夹,用来存我抓取到的图片,这个文件夹要建在和我要写python代码的py文件同一个目录里。

在这里插入图片描述

  1. 然后将代码写到我建好的getimages.py中并保存。
 #导入模块
import requests

#找网址
url='http://pic.netbian.com/4kdongman/index_2.html'

res =requests.get(url)

res.encoding='gbk'

from bs4 import BeautifulSoup

html=BeautifulSoup(res.text,'html.parser')

#检查 找到图片所在的列表,并找到列表的类名
parent=html.find('ul',class_='clearfix')
#找到列表中的图片
images=parent.find_all('img')

from urllib import request
for each in images:
    #找到图片的网址
    img_url='http://pic.netbian.com'+each.attrs['src']
    #print(img_url)
    name=each.attrs['alt']
    #print(name)
    #将图片存到images文件夹中
    request.urlretrieve(img_url,f'imagess/{name}.jpg')
  1. 然后在这个目录顶端输入cmd进入到运行窗口。
    在这里插入图片描述
  2. 然后再运行窗口里写入 python getimages.py 然后回车,这样我就把这个网页的图片扣下来存到我的imagess文件夹中了。
    在这里插入图片描述

如果要抓多页的数据的话就在 import requests(导入模块)和找网址之间加个循环(注意循环以下代码全都要tab或四个空格缩进一下)↓↓↓

#要抓取的页数
all=15
#从第一页开始循环,一直到第十五页
for pageNum in range(1,all+1):

然后在要抓取的网页链接的.html前面的数字改成{pageNum}
这样就可以疯狂的抓取到了15页的所有图片啦!

原创文章 8 获赞 27 访问量 2365

猜你喜欢

转载自blog.csdn.net/lmachi/article/details/106051849