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

举报
花花叔叔 发表于 2022/09/26 00:19:02 2022/09/26
【摘要】 urllib的基本使用 使用urllib获取百度首页的源码 # 1. 定义一个url (指的就是要访问的地址) url = "http://www.baidu.com" # 2. 模拟浏览器向服务器...

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)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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())


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

urllib下载

下载网页

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

  
 
  • 1
  • 2
  • 3

下载图片

# 下载图片
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")

  
 
  • 1
  • 2
  • 3

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

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")

  
 
  • 1
  • 2

urllib请求对象的定制

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

先导包

import urllib.request

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

  
 
  • 1
  • 2
  • 3

之后模拟出一个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"
}

  
 
  • 1
  • 2
  • 3
# 因为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
  • 2
  • 3
  • 4
  • 5

文章来源: blog.csdn.net,作者:花花叔叔,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_52077949/article/details/127030024

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。