第一节:初识爬虫
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)所谓协议其实就是一套既定的规则