7篇Python爬虫实例,可直接运行,适合收藏
python爬虫7篇实例,分七个文章进行发布;第二篇:爬取图片信息。
- 爬取图片信息,并将每张图片都下载下来。
爬虫主要三部分:
1、获取数据
2、数据解析
3、调用函数
- 先上完整代码: 代码后面进行一步步解析。
python
import requests
from bs4 import BeautifulSoup
import os
index = range(2,5)
urls = []
for i in index:
urls.append(f'https://pic.netbian.com/4kdongman/index_{i}.html')
# https://pic.netbian.com/tupian/34851.html
# 传入单个网页,获取网页上所有得图片链接
def craw_single_url(url):
re = requests.get(url)
re.encoding = 'gbk'
soup = BeautifulSoup(re.text,'html.parser')
pics_links = soup.find_all('img')
links = []
for link in pics_links:
if 'uploads' not in link['src']:
continue
links.append(f'https://pic.netbian.com{link['src']}')
return links
# 传入图片链接,将图片下载到文件夹中
def imgs_download(links):
for link in links:
re = requests.get(link)
pic_name = os.path.basename(link)
with open(f'图片/{pic_name}','wb') as f: # w : 写入 b : 二进制写入
f.write(re.content)
# 循环爬取的网页链接,将所有网页的 links 放入元组中
links = []
for url in urls:
for link in craw_single_url(url):
links.append(link)
# 将所有的 link 图片下载下来
imgs_download(links)
1、获取数据
- 该函数是获取该 url 链接下所有图片的链接
- 函数返回值是:所有图片的链接
python
def craw_single_url(url):
re = requests.get(url) # 请求 url
re.encoding = 'gbk' # gbk格式
soup = BeautifulSoup(re.text,'html.parser') # 创建一个 BeautifulSoup 对象,之后对其解析
pics_links = soup.find_all('img') # 在soup 中找到 img 的链接
links = []
for link in pics_links: # 循环每个链接
if 'uploads' not in link['src']: # 判断是否正确的链接
continue
links.append(f'https://pic.netbian.com{link['src']}') # 构建真正的图片链接
return links
2、数据解析
- 对获取到的图片 urls 进行解析
- 循环 urls 下载图片到指定文件中
python
def imgs_download(links): # 下载图片函数
for link in links: # 对传入图片链接进行循环
re = requests.get(link) # 请求单个链接
pic_name = os.path.basename(link) # 获得图片的名字
with open(f'图片/{pic_name}','wb') as f: # 打开 图片 文件夹进行写入 w : 写入 b : 二进制写入
f.write(re.content) # 将图片保存到 图片 文件夹
3、进行调用
python
# 循环爬取的网页链接,将所有网页的 links 放入元组中
links = []
for url in urls: # 循环每个页面
for link in craw_single_url(url): # 将每个页面得到的图片urls,放入 links列表
links.append(link) # 放入 links列表
# 将所有的 link 图片下载下来
imgs_download(links) # 再调用 imgs_download 函数,对每张图片进行下载