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

简介: 爬虫第一次笔记 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)
相关文章
|
3月前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
3月前
|
数据采集
Haskell爬虫:连接管理与HTTP请求性能
Haskell爬虫:连接管理与HTTP请求性能
|
3月前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
在网络的广阔世界里,Python凭借其简洁的语法和强大的库支持,成为开发网络爬虫的首选语言。本文将通过实战案例,带你探索urllib和requests两大神器的魅力。urllib作为Python内置库,虽API稍显繁琐,但有助于理解HTTP请求本质;requests则简化了请求流程,使开发者更专注于业务逻辑。从基本的网页内容抓取到处理Cookies与Session,我们将逐一剖析,助你从爬虫新手成长为高手。
76 1
|
3月前
|
数据采集
爬虫:之下载QQ音乐(我还没有搞定,等我学了爬虫回来写你)
爬虫:之下载QQ音乐(我还没有搞定,等我学了爬虫回来写你)
|
5月前
|
数据采集 网络协议 数据挖掘
网络爬虫进阶之路:深入理解HTTP协议,用Python urllib解锁新技能
【7月更文挑战第30天】网络爬虫是数据分析和信息聚合的关键工具。深入理解HTTP协议及掌握Python的urllib库对于高效爬虫开发至关重要。HTTP协议采用请求/响应模型,具有无状态性、支持多种请求方法和内容协商等特点。
56 3
|
5月前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
【7月更文挑战第29天】在广阔的网络世界里,Python以其简洁的语法和强大的库支持成为网络爬虫开发的首选。本文聚焦于两大网络请求库——urllib和requests。urllib是Python内置库,虽API稍显复杂,却有助于理解HTTP本质。示例代码展示了如何使用`urlopen`函数发起GET请求并读取网页内容。相比之下,requests库则更加人性化,极大地简化了HTTP请求流程,使开发者能更专注于业务逻辑。
52 1
|
4月前
|
数据采集 存储 监控
Haskell爬虫中日志记录:监控HTTP请求与响应
Haskell爬虫中日志记录:监控HTTP请求与响应
|
5月前
|
数据采集 Web App开发 Java
Java爬虫安全策略:防止TikTok音频抓取过程中的请求被拦截
Java爬虫安全策略:防止TikTok音频抓取过程中的请求被拦截
|
6月前
|
数据采集 网络协议
做爬虫数据采集需要哪种类型代理
在爬虫数据采集时,选择HTTP/HTTPS代理或SOCKS代理(特别是SOCKS5)以处理不同协议和提升匿名性。私密代理提供更高安全性和速度,而共享代理更具成本效益。高匿代理能最大程度隐藏真实IP和代理使用,降低被封锁风险。选择应基于任务需求和目标网站反爬策略。
|
6月前
|
数据采集 存储 编解码
技术笔记:Node.jsmm131图片批量下载爬虫1.01增加断点续传功能
技术笔记:Node.jsmm131图片批量下载爬虫1.01增加断点续传功能
105 0