0
点赞
收藏
分享

微信扫一扫

C++面试基础 -操作系统-架构能力:如何高效利用CPU缓存

程序员阿狸 03-01 17:30 阅读 4

        这几天都在为了蓝桥杯做准备,一直在刷算法题,确实刷算法题的过程是及其的枯燥且枯燥的。于是我还是决定给自己找点成就感出来,那么Python的爬虫就这样开始学习了。 

注:文章源于观看尚硅谷爬虫视频后笔记

目录

Urllib库

基本使用

一个类型和六个方法

一个类型

六个方法

下载功能

请求对象的定制

url的组成

(1)协议

(2)主机

(3)端口号

(4)路径

(5)参数

(6)锚点

总结


       

Urllib库

这个库和其他的爬虫库不一样,这个库是Python自带的,所以一般是不需要安装的。

基本使用

urllib的基本使用,我们把百度页面的所有源代码全部拿下。

就是这个页面的全部东西,我们可以使用urllib来拿下它。

代码如下:


# 使用urllib来获取百度首页的源码
import urllib.request


# 1.定义一个URL,就是要访问的网址
url = "http://www.baidu.com/"

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

# 3.获取响应中的页面中的源码
# read返回的是字节形式的二进制数据
# 将二进制的数据转换为字符串
# 解码:二进制 -> 字符串  decode('编码格式字符集')
content = response.read().decode('utf-8')

# 4.打印一下数据
print(content)


一个类型和六个方法

一个类型

首先我们可以看见服务器返回给我们的response的类型是HTTPResponse

六个方法

[1]  read( ):按照一字节一字节的读取,效率较慢

扩展:read( n ):n是多少就返回多少个字节

[2] readline():读取一行

[3] readlines():一行行的读取,直到读取完毕

[4] getcode():获取浏览器状态码,200证明没有报错

[5] geturl():获取url地址

[6] getheaders():获取响应头(状态信息)


# 使用urllib来获取百度首页的源码
import urllib.request

# 1.定义一个URL,就是要访问的网址
url = "http://www.baidu.com/"

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

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

content = response.read()
print(content)

# 数字代表返回字节的数量
content = response.read(5)
print(content)

# 读取一行
content = response.readline()
print(content)

# 一行行的读取,直到读取完毕
content = response.readlines()
print(content)

# 获取状态码
content = response.getcode()
print(content)

# 获取URL地址
urlP = response.geturl()
print(urlP)

# 获取响应头(状态信息)
headers = response.getheaders()
print(headers)

下载功能

urlretrieve(url, “给保存下来的文件取一个文件名,注意后缀”)
import urllib.request

# 下载一个网页
url_page = "http://www.baidu.com"

# url 代表下载路径,filename代表文件的名字
urllib.request.urlretrieve(url_page, "baidu.html")

# 下载图片
url_img = "data:image/jpeg;base64,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"
urllib.request.urlretrieve(url_img, "zrn.jpg")

# 下载视频
url_video = "https://vdept3.bdstatic.com/mda-nh1e9kssmc87p4kd/sc/cae_h264/1659450984449082322/mda-nh1e9kssmc87p4kd.mp4?v_from_s=hkapp-haokan-hbe&auth_key=1709180938-0-0-32b067f6cb3b6ecaa687926ed3921790&bcevod_channel=searchbox_feed&pd=1&cr=2&cd=0&pt=3&logid=1738376535&vid=10757595435498108110&klogid=1738376535&abtest=116096_1"
urllib.request.urlretrieve(url_video, "爬虫下来的文件/ZRNvideo.mp4")

        注意爬下来的视频在pycharm中无法直接播放,因为它并不内置视频解码器,需要在文件管理器或者其他的播放软件中播放。


请求对象的定制

url的组成

http/https        www.baidu.com             80/443                                 ?号后面的数据       #

协议                       主机                        端口号                路径                参数               锚点

https://www.baidu.com/s?ie=UTF-8&wd=%E7%AB%A0%E8%8B%A5%E6%A5%A0

                                                                                           s             ie=UTF-8...

(1)协议

http

https:增加了SSL更加的安全

(2)主机

也就是域名,主机地址

(3)端口号

http的端口号是 80

https的端口号是 443

MySQL是 3306

Oracle 是 1521

Redis 是 6379

MongoDB 是 27017

(4)路径
(5)参数
(6)锚点

如果我们使用https来获取百度首页的全部数据时


import urllib.request

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

response = urllib.request.urlopen(url)

content = response.read().decode("utf-8")
print(content)


会发现真的只有这么一点内容

为什么呢?因为我们遇到了一个反扒的措施

        UA:User Agent叫做用户代理,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统以及版本,CPU类型、浏览器以及版本。浏览器内核、浏览器渲染引擎、浏览器语言和浏览器插件等

python语法: request = urllib.request.Request( )

所以我们需要伪装一下

常用的UserAgent库下载_流行的UserAgent手机库UA_UA标识网 (kuzhazha.com)

获取UA可以通过上面的网站搜索,也可以通过另一种方法

再刷新一下页面

往下滑就可以找到

然后使用

urllib.request.Request()这个方法即可
import urllib.request

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

headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}
# 因为urlopen()方法不能存储字典,所以headers无法传入
# 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)

response = urllib.request.urlopen(request)

content = response.read().decode("utf-8")
print(content)

这样就可以完全把百度首页的代码爬下来了

总结

简单使用,一学就会!

ヾ( ̄▽ ̄)Bye~Bye~

举报

相关推荐

0 条评论