当前位置: 首页 > news >正文

爬虫——第一次笔记 urllib的基本使用 urllib一个类型,六个方法 urllib下载 urllib请求对象的定制

urllib的基本使用

使用urllib获取百度首页的源码

# 1. 定义一个url (指的就是要访问的地址)
url = "http://www.baidu.com"

# 2. 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 3. 获取响应中的页面的源码
# 将二进制数据转换成字符串
content = response.read().decode("utf-8")

# 4. 打印数据
print(content)

urllib一个类型,六个方法

一个类型 HTTPResponse
六个方法 read readline readlines getcode geturl getheaders

import urllib.request
# 一个类型 HTTPResponse
# 六个方法 read readline readlines getcode geturl getheaders
url = "http://www.baidu.com"
response = urllib.request.urlopen(url)

# 一个类型和六个方法
# print(type(response))

# 按照一个字节一个字节读取
# content = response.read()
#
# print(content)

# content = response.read(5)
#
# print(content)

content = response.readlines()
print(content)

print(response.getcode())

print(response.geturl())
print(response.getheaders())

urllib下载

下载网页

# 下载网页
url_page = "http://www.baidu.com"
urllib.request.urlretrieve(url_page,"baidu.html")

下载图片

# 下载图片
url_img = "https://img0.baidu.com/it/u=2759579759,1586116829&fm=253&fmt=auto&app=120&f=JPEG?w=717&h=448"
urllib.request.urlretrieve(url_img,"lisa.jpg")

下载视频
获取视频的方法
在这里插入图片描述

url_video = "https://www.douyin.com/aweme/v1/play/?video_id=v0200fg10000ccna27rc77ub11dta7cg&line=0&file_id=9b13590c62a8455b8a68a95cdef94734&sign=53bdf54b5862fbd847152cbb7d8d85e3&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL&aid=6383"
urllib.request.urlretrieve(url_video,"erya.mp4")

urllib请求对象的定制

这个就是突破第一个反爬手段
网址的组成

# url的组成
# 协议 http / https
# 主机 www.badu.com
# 端口号 80
# 路径 s
# 参数 ie=utf-8&f=8&rsv_bp=1&tn=02003390_43_hao
# 锚点 #

这一次测试是https协议开头的,不是http,如果还是和之前一样进行爬取,是获取不到的。
所以得给参数添加自己的User-Agent

先导包

import urllib.request

url = "https://www.baidu.com"

之后模拟出一个AU,假装是真正的浏览器访问,

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
}
# 因为url open方法中不能存储字典,所以header不能传入,
request = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode("utf-8")
print(content)

相关文章:

  • 神经网络电子书,神经网络入门书
  • 面试说:聊聊JavaScript中的数据类型
  • 深入理解计算机系统——第三章 Machine-Level Representation of Programs
  • C# ZXing.net解码测试(QRCode、DataMatrix、1D-Barcode一维码条码)
  • 新手轻松日赚300+搬砖项目详解
  • 信号分析与处理——对于傅里叶信号一些整理
  • 2023陕西师范大学择校分析
  • 数字藏品带给联盟链有哪些机会?
  • 搭建mybatis环境实现crud
  • ROS2入门学习
  • 【JavaSE】类和对象重点知识荟萃
  • JavaScript DOM——修改 HTML 内容
  • 【二叉树:3】线索二叉树
  • 深聊MySQL:如何优化数据导入?
  • Android APP极限瘦身—— WebP 图片优化
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • JAVA SE 6 GC调优笔记
  • Linux Process Manage
  • 关于for循环的简单归纳
  • 深入浅出webpack学习(1)--核心概念
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 小程序01:wepy框架整合iview webapp UI
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • #宝哥教你#查看jquery绑定的事件函数
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net专家(张羿专栏)
  • ::before和::after 常见的用法
  • @ModelAttribute注解使用
  • [2023-年度总结]凡是过往,皆为序章
  • [C++进阶篇]STL中vector的使用
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [dts]Device Tree机制
  • [GXYCTF2019]BabySQli1
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE
  • [JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
  • [luoguP2401] 不等数列
  • [OC]UILabel 文字长的截断方式
  • [Oh My C++ Diary]怎样用cmd运行exe控制台程序
  • [php] 数据结构算法(PHP描述) 快速排序 quick sort
  • [RK-Linux] Linux A/B System详解
  • [Vue] 自定义命令
  • [笔记].使用Protues仿真Max7129
  • [翻译]计划扑克牌: 避免工作量估算中的错误
  • [附源码]Python计算机毕业设计白果园网上水果超市
  • [个人]百度裁员录音门