python爬虫(5)实例(1)
# -*- coding: utf-8 -*-
# 导入第三方包和模块 import requests from bs4 import BeautifulSoup import os #os是软件自带的,此处用来保存文件夹的功能
# 在本地新建一个文件夹,命名为test_img,用以保存下载的图片 folder = 'test_img' if not os.path.exists(folder): os.makedirs(folder)
# 定义一个函数,用以下载图片 def download(url): response = requests.get(url) name = url.split('/')[-1] #以/为分割符保留最后一段,这个是保存的名字,在下一条中使用,此条只是为了名字,无其他用 f = open(folder + '/' + name + '.jpg', 'wb') f.write(response.content) f.close()
header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
# 网页可以翻19次,相当于改变url,循环19次;然后对每一个页面都执行‘获取src’和‘下载图片’的操作 for i in range(1, 20): url_i = 'https://tieba.baidu.com/p/4064957036?pn=' + str(i) response_i = requests.get(url_i, headers=header) print(url_i) #打印出所有的网页
# 获取第i个页面的url、response类、html、soup,以及该页面所有图片对应的src html_i = response_i.text soup_i = BeautifulSoup(html_i, 'html.parser') imgs_i = soup_i.find_all('img', attrs={'class': 'BDE_Image'})
for img in imgs_i: img_src = img.get('src') print(img_src) download(img_src) print('OK')
本实例的技术难点在于:
1、用for循环表示这个可翻页帖子的19个url;
2、range()表示有序数组;
3、str()强制将整形转化为字符串;
4、温习BeautifulSoup模块中find_all(‘img’, {‘class’: ‘attrs’})与soup.get(‘src’),来获取所有图片的src的方法。
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用