python实战学习1——爬虫

本文介绍了网络爬虫的基本概念,使用Python的urllib.request模块来获取网站源码,包括打开URL、读取响应、解码内容。此外,还展示了如何通过HTTPResponse对象的不同方法读取数据,以及如何下载网页、图片和视频到本地。最后,补充了urllib库的相关知识和URL协议的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一节:初识爬虫

1.什么是网络爬虫(spiders)?

网络爬虫是一种自动化程序,用于浏览互联网并收集网页上的信息。它们使用特定的算法来跟踪链

接,访问网页,并提取有用的数据。网络爬虫通常被用于搜索引擎、数据挖掘、价格比较、内容聚

合等领域。它们可以帮助我们快速获取大量的数据,并进行进一步的分析和处理。

2.对于一个没有反爬措施的网站,如何获取该网站的源码?

import urllib.request
#urllib.request 模块中的 request 类是用来打开一个 URL 的请求的。它提供了一系列的方法来处理 HTTP 和 FTP 请求,如发送 GET 和 POST 请求,上传文件等。
url='htto://www.baidu.com'#定义一个变量储存访问地址
response=urllib.request.urlopen(url)#模拟浏览器向服务器发送请求,并用response接收
content=response.read()#特别要注意:这里的response接收后类似于之前python中的文件,要用文件读取操作来处理文件
print(content)#输出结果为字节形式的二进制代码,因为read方法返回是字节形式的二进制数据
content=response.read().decode('utf-8')#decode的中文为解码。将二进制结果转化为可以看懂的字符串形式属于解码。
print(content)

3.一个类型,六个方法

#承接上边的代码
print(type(response))#输出结果为:HTTPRsponse
content1=response.read(5)#默认情况下read方法读取的方式是:一个字节一个字节的去读,而read(x)就是按照这种方式去读取前x个字节的数据
content1=response.readline()#这种情况是一行一行去读取,但是只能读取一行,要想读取全文,则是以下方法读取:
content1=response.readlines()
print(response.getcode())#获取状态码,如果状态码是200则说明逻辑没错,如果是其他数字则说明逻辑错误。
print(response.geturl())#返回url地址,也就是返回网址
print(response.getheaders())#获取状态信息

 一个类型即为网页响应数据类型为HTTPRsponse

4.将爬取的数据(如:视频,音频等)下在到本地

以下列举三个例子(百度主页,b站图片,b站视频):

url_page='http://www,baide.com'
urllib.request.urlretrieve(url_page,'baidu.html')#retrieve中文为返回,此部分为下载网页
#特别注意这里urllib.request.urlretrieve(url_page,'baidu.html')与urllib.request.urlretrieve(url=url_page,'baidu.html')完全一致,只不过前者是普通传参,后者是关键词传参
url_img='https://cn.bing.com/images/search?q=%E8%B5%B5%E4%B8%BD%E9%A2%96&qs=n&form=QBIR&sp=-1&lq=0&pq=%E8%B5%B5%E4%B8%BD%E9%A2%96&sc=10-3&cvid=FF3E958DAEB144FF9080050CC1BACB75&ghsh=0&ghacc=0&first=1'
urllib.request.urlretrieve(url=url_img,filename='zhaoliying.jpg')#下载图片
url_video='blob:https://www.bilibili.com/d73201aa-e225-441b-b10b-9d52ed5974c7'
urllib.request.urlretrieve(url_video,'video.mp4')

5.知识点补充

(1)urllib英文含义为网络爬虫

(2)url通俗来讲就是网址

(3)所谓协议其实就是一套既定的规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值