爬虫第一次笔记 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)
相关文章
|
1月前
|
数据采集 前端开发 JavaScript
如何在爬虫过程中正确使用Promise对象和async/await?
如何在爬虫过程中正确使用Promise对象和async/await?
49 2
|
1月前
|
数据采集 存储 前端开发
【爬虫pyspider教程】1.pyspider入门与基本使用
爬虫框架pyspider入门和基本用法。
198 0
|
1月前
|
数据采集 Python
Python爬虫:实现爬取、下载网站数据的几种方法
Python爬虫:实现爬取、下载网站数据的几种方法
313 1
|
1月前
|
数据采集 存储 JSON
【专栏】网络爬虫与数据抓取的基础知识,包括爬虫的工作原理、关键技术和不同类型
【4月更文挑战第27天】本文介绍了网络爬虫与数据抓取的基础知识,包括爬虫的工作原理、关键技术和不同类型。通过实例展示了如何构建简单爬虫,强调实战中的环境搭建、目标分析及异常处理。同时,文章探讨了法律、伦理考量,如尊重版权、隐私保护和合法用途,并分享了应对反爬策略。最后,倡导遵守数据抓取道德规范,以负责任的态度使用这项技术,促进数据科学的健康发展。
|
5天前
|
数据采集 网络协议
做爬虫数据采集需要哪种类型代理
在爬虫数据采集时,选择HTTP/HTTPS代理或SOCKS代理(特别是SOCKS5)以处理不同协议和提升匿名性。私密代理提供更高安全性和速度,而共享代理更具成本效益。高匿代理能最大程度隐藏真实IP和代理使用,降低被封锁风险。选择应基于任务需求和目标网站反爬策略。
|
1月前
|
数据采集 搜索推荐 API
python爬虫如何处理请求频率限制?
【2月更文挑战第21天】【2月更文挑战第64篇】python爬虫如何处理请求频率限制?
|
1月前
|
数据采集 应用服务中间件 数据安全/隐私保护
Python爬虫urllib详解#3
摘要:urllib深度解析与高级用法、robots协议分析【2月更文挑战第9天】
67 1
Python爬虫urllib详解#3
|
1月前
|
Web App开发 数据采集 Linux
Python爬虫请求库安装#1
摘要:requests安装、selenium安装、aiohttp安装【2月更文挑战第2天】
161 3
Python爬虫请求库安装#1
|
1月前
|
数据采集 Web App开发 数据处理
Ruby网络爬虫教程:从入门到精通下载图片
Ruby网络爬虫教程:从入门到精通下载图片
|
10月前
|
数据采集 算法 开发者
如何使用Python爬虫处理多种类型的滑动验证码
如何使用Python爬虫处理多种类型的滑动验证码