• Python实训-15天-博客汇总表

目录

1、网络爬虫

1.1、爬取文本

1.2、爬取图片

2、其他知识点


  1. 上午题目讲解
  2. 昨天的基础题目讲解
  3. 爬取非文本(图片)

1、网络爬虫

#bili 视频,爬下来 【能】【很多代码】【我不会,懒得研究,很费劲。】
# 非文本爬取
    #图片、音频、视频、文档等
    #实现批量自动化下载

实现步骤:

  1. 获取资源的路径 url
  2. 访问地址,得到数据(字节序列)
  3. 本地存储(写文件)

1.1、爬取文本

  1. 打印全部的20本书的书名。
  2. 在打印书名时,打印每本书的价格。
  3. 将排名前100的书的(书名和价格)全部打印出来。提醒:第3问,可以需要循环爬取(爬取5次才能得到排名前100的书籍信息)。
  4. 将这100本数的书名和价格,爬出来并且写入到本地的txt文档中。

爬取豆瓣前100的图书和价格并且本地化写入文件:

  1. 爬取html
  2. BeautifulSoup对html解析
  3. 找到我们需要的数据
  4. 对数据进行处理
'''
1.打印全部的20本书的书名。√
2.在打印书名时,打印每本书的价格。√
3.将排名前100的书的(书名和价格)全部打印出来。提醒:第3问,可以需要循环爬取(爬取5次才能得到排名前100的书籍信息)。√
4.将这100本数的书名和价格,爬出来并且写入到本地的txt文档中。√爬取豆瓣前100的图书和价格并且本地化写入文件
1.爬取html
2.BeautifulSoup对html解析
3.找到我们需要的数据
4.对数据进行处理
'''
import requestsfrom bs4 import BeautifulSoup as BS# 伪装成浏览器
hds = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}# 存放爬取到的书的信息
books = {};# 分5次,爬取100条数据
for i in range(5):url = 'https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start={}&type=T'.format(i * 20);resp = requests.get(url, headers=hds);# print(resp.status_code)  # 200正确接收到了响应结果ct = resp.content.decode('utf-8');# print(ct);  # 爬取下来的html代码html = BS(ct, 'lxml');  # 用BeautifulSoup解析html代码# 选择器定位目标元素:[所有a标签]sa = html.select('.subject-item .info h2 a')  # 爬取a标签的内容# print(len(sa))  # 确认一下【尤其是自己写代码时】打印选择器个数20# 定位价格ps = html.select('.subject-item .info .pub');# print(len(ps))  # 确认一下【尤其是自己写代码时】打印选择器个数20for i in range(len(sa)):a = sa[i];p = ps[i];bookname = a['title'];  # 通过[属性名]来获取属性值price = p.get_text().replace(' ', '').replace('\n', '');price = price.split('/')[-1].replace('元', '');books[bookname] = price;# print(books)
# print(list(books.items()))# 将数据写入文件
f = open(r'C:\Users\lwx\Desktop\books.txt', 'w');
for b in list(books.items()):f.write(b[0] + ':' + b[1] + '\n');
f.close()print("文本爬取完成~")# for a in sa:
#     # bookname = a.get_text().replace(' ','').replace('\n','');
#     bookname = a['title'];  # 通过[属性名]来获取属性值
#     print(bookname);
#
# for p in ps:
#     price = p.get_text().replace(' ', '').replace('\n', '');
#     # 按斜杠/分割,拿取最后一个元素
#     price = price.split('/')[-1].replace('元', '');
#     print(price)

1.2、爬取图片

'''
非文本爬取图片、音频、视频、文档等实现批量自动化下载
1.获取资源的路径 url
2.访问地址,得到数据(字节序列)
3.本地存储(写文件)
'''import requests
from bs4 import BeautifulSoup as BS  # as BS取别名# 伪装成浏览器
hds = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}us = [];# 分5次,爬取100条数据
for i in range(5):url = 'https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start={}&type=T'.format(i * 20);resp = requests.get(url, headers=hds);ct = resp.content.decode('utf-8');html = BS(ct, 'lxml');# 选择器定位目标元素 [所有img标签]imgs = html.select('.subject-item .pic img')# print(len(sa))  # 确认一下for img in imgs:img_url = img['src'];  # 获取属性值us.append(img_url);# 逐个请求us中的地址,得到数据
# 存储到本地(写文件)
i = 1;
for u in us:# 爬地址resp = requests.get(u, headers=hds);ct = resp.content;  # 此处就没有decode了,因为爬取的是图片,非文本,不能解码# 本地写入f = open(r'C:\Users\lwx\Desktop\books\{}{}'.format(i, '.jpg'), 'wb');f.write(ct);f.close();print("下载完毕:", i)i = i + 1;print("图片爬取完毕~")

2、其他知识点

Python正则表达式: Python 正则表达式 | 菜鸟教程

Python实训day04pm【网络爬虫(文本、图片)】相关推荐

  1. Python实训day04am【爬虫介绍、爬取网页测试、Python第三方库】

    Python实训-15天-博客汇总表 目录 1.文本文件编程题 2.爬虫(Scrapy) 2.1.安装第三方库 2.2.爬取网页测试 2.2.1.样例1 2.2.2.样例2 3.PyCharm导入第三 ...

  2. Python实训-15天-博客汇总表

    目录 1.课程安排 1.1.课程介绍 1.2.课程目标 2.课件 2.1.课件and录屏 2.2.练习and案例and作业 3.实训博客笔记 第1周-week1 day01 day02 day03 d ...

  3. Python实训day08am【网络爬虫selenium、图像处理入门】

    Python实训-15天-博客汇总表 目录 1.网络爬虫-selenium(歌曲与歌词) 2.图像处理 2.1.安装库 2.2.图片处理 2.3.马赛克 2.4.副本-缩略图-粘贴-创建新图 2.5. ...

  4. Python实训day13am【Python网络爬虫综合大作业PPT】

    Python实训-15天-博客汇总表   今天上午大家抓紧时间继续完成实训报告和PPT,有问题我会在群里跟大家说明, 暂时不用上线直播了. 实训结束后,我会在博客上发布网络爬虫综合大作业题目及解析.

  5. Python实训day06am【网络爬虫(爬取接口)】

    Python实训-15天-博客汇总表 目录 1."from bs4 import BeautifulSoup"解析 2.字体反爬虫 3.网络爬虫 3.1.直接爬取页面html-爬取 ...

  6. Python实训day05pm【JS-DOM-获取元素节点对象、网络爬虫】

    Python实训-15天-博客汇总表 目录 1.CSS选择器 2.网络爬虫 2.1.练习1 2.2.练习2 1.CSS选择器 .rank-body .book-mid-info .author a:n ...

  7. Python实训day14pm【Python网络爬虫综合大作业-参考解析】

    Python实训-15天-博客汇总表 题目:天气数据的爬取和统计 大作业题目思路引导:定时爬取每个地级市的实时天气状况.存入excel中.为每个城市生成html展示.历史excel文件以每日为单位归档 ...

  8. Python实训day12am【网络爬虫大作业简略解析:动态生成html页面、数据写入Excel】

    Python实训-15天-博客汇总表 目录 1.HTML页面设计 2.生成每个城市的HTML页面 2.1.HTML页面代码(weatherTemplate.html) 2.2.实例代码-动态生成htm ...

  9. Python实训day06pm【网络爬虫(爬取接口)-爬取图片与数据】

    Python实训-15天-博客汇总表 目录 练习1 练习2 练习1 ''' 课堂练习2:爬取lol英雄的头像.BP的音乐. 需要找数据接口:https://101.qq.com/#/hero ''' ...

最新文章

  1. 第七篇 JVM核心机制之JVM运行和类加载全过程(二)
  2. 异配图神经网络小结:突破同配性,拥抱异配性
  3. matlab 二值化_撸了一份 ostu二值化,需要的小伙伴请拿走
  4. 类加载器-双亲委派-源码分析1
  5. 【Redis】redis开机自启动、设置守护进程、密码设置、访问权限控制等安全设置(redis默认端口6379)...
  6. ASP.NET MVC Global.cs - 应用程序事件
  7. 大连工业大学艺术学院计算机考试,大连工业大学艺术与信息工程学院应用科技学院...
  8. webpack devserver配置_在webpack中使用babel
  9. 国家网信办:掌握超过100万用户个人信息运营者赴国外上市需申报审查
  10. mysql mssql 性能对比_详解mysql分区实验测试--非分区表与分区表的性能对比
  11. vant中picker选择器
  12. 你这手写vue2.x/3.x的响应式保熟吗?
  13. 12306网站 =≈=泄露用户信息解读之撞库
  14. 如何快速解决 Mybatis 异常:Invalid bound statement (not found)
  15. 基于stm32的智能小车(远程控制、避障、循迹)
  16. C++获取电脑主板唯一标识
  17. 解锁电机气隙公差分析之奥秘!
  18. 2014 360校园招聘技术类面试题
  19. 4 变量、作用域与内存
  20. 探访安徽休宁的传统小吃:古法舂碓麻糕迎新年

热门文章

  1. 合并工具_分享一个SM to HISM合并工具
  2. java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
  3. java resources 路径_Java工程读取resources中资源文件路径问题
  4. 2.利用计算机进行信息加工的一般过程是:,[信息技术教案]《计算机信息加工的一般过程》教案...
  5. devc++源文件未编译_悬赏万元,重现「木兰」编程语言编译器
  6. 【推荐系统】推荐系统评测指标
  7. 记录 关于浏览器跨域和设置默认浏览器的问题
  8. 九十六、轻松搞定Python中的PPT办公自动化系列
  9. 图马尔可夫网络:融合统计关系学习与图神经网络
  10. 重磅!2021 高通人工智能应用创新大赛今日开赛