python爬虫——爬取单页内容之图片

python代码如下:

点击查看代码

'''
        爬取单页内容——bing图片
1. 分析源代码,bs4解析html,并查找筛选
2. 循环获取链接,正则获取图片文件名
3. 读取每条链接图片的content信息
4. 写入文件,用 图片文件名 命名
'''
# 入库
import re
import requests
from bs4 import BeautifulSoup
# 目标网址,get获取源代码,调整编码
url = 'https://bing.wdbyte.com/zh-cn/'
resp=requests.get(url)
resp.encoding='utf-8'
# 提交源代码给BeautifulSoup4,使之分析html
main_page=BeautifulSoup(resp.text,'html.parser')
alist_all=main_page.find('div',class_='w3-row-padding w3-padding-16 w3-center').findAll('a',attrs={'href':re.compile(r'https://.*?')})
# 循环依次读取链接并下载
for a in alist_all:
    href = a.get('href') # 每次循环得到一个a的href的值
    print(href) # 须要和findAll的属性一样。a 有href属性,无src属性;img有src,无href
    # 下载准备
    img_resp = requests.get(href)   # img_resp.content 拿到字节
    img_name_pattern = re.compile(r'ZH-CN.*?jpg')   # 图片文件名的正则
    img_name_list = img_name_pattern.findall(href)  # 查找此条链接中符合正则的内容
    img_name = ''.join(img_name_list)               # 完成列表转字符串,否则img/+ 报错,列表不支持拼接
    # 开始下载
    with open('img/' + img_name, mode='wb') as f:
        f.write(img_resp.content)  # 图片字节写入文件
    print('完成了!!!', img_name)
print('完事!休息!')

posted @ 2024-11-04 18:05  向君  阅读(9)  评论(0编辑  收藏  举报