当前位置: 首页 > news >正文

怎么做网站框架品牌网址注册

怎么做网站框架,品牌网址注册,关键词林俊杰,建设网站的运行费包括什么地方文章目录 前言一、 爬虫的初识1.1 什么是爬虫1.2 爬虫的核心1.3 爬虫的用途1.4 爬虫分类1.5 爬虫带来的风险1.6. 反爬手段1.7 爬虫网络请求1.8 爬虫基本流程 二、urllib库初识2.1 http和https协议2.2 编码解码的使用2.3 urllib的基本使用2.4 一个类型六个方法2.5 下载网页数据2… 文章目录 前言一、 爬虫的初识1.1 什么是爬虫1.2 爬虫的核心1.3 爬虫的用途1.4 爬虫分类1.5 爬虫带来的风险1.6. 反爬手段1.7 爬虫网络请求1.8 爬虫基本流程 二、urllib库初识2.1 http和https协议2.2 编码解码的使用2.3 urllib的基本使用2.4 一个类型六个方法2.5 下载网页数据2.6 带单个参数的页面抓取get请求2.7 定制request使用ua反爬2.8 多字段的字符转码2.9 post请求的使用2.10 异常处理 三、 requests请求的使用3.1 下载requests包3.2 requests的基本使用3.3 响应的保存3.4 响应对象的其他属性3.5 用户代理介绍3.6 构建ua池3.7 带参数的请求3.8 通过面向对象的方式来获取数据3.9 post请求 总结 前言 在当今信息爆炸的时代互联网上的数据呈指数级增长如何高效地获取、处理和分析这些数据成为一项重要的技能。网络爬虫Web Crawler作为一种自动化数据采集工具能够帮助我们快速地从海量网页中提取有价值的信息广泛应用于搜索引擎、数据分析、市场调研、舆情监控等领域。 学习爬虫技术不仅能提升我们的编程能力还能培养数据思维为后续的数据挖掘、机器学习等方向奠定基础。然而爬虫开发并非简单的“请求-解析”过程它涉及HTTP协议、HTML解析、反爬机制应对、数据存储等多个技术点同时还需遵守相关法律法规合理合法地使用爬虫技术。 本教程将从基础概念入手逐步介绍爬虫的核心技术并结合实际案例帮助读者掌握爬虫开发的完整流程。无论你是编程初学者还是希望提升数据采集能力的开发者都可以通过本教程系统地学习爬虫技术并将其应用于实际项目中。 一、 爬虫的初识 1.1 什么是爬虫 如果我们把互联网比作一张大的蜘蛛网那一台计算机上的数据便是蜘蛛网上的一个猎物而爬虫程序就是一只小蜘蛛沿着蜘蛛网抓取自己想要的数据 解释1: 通过一个程序根据url(http://www.taobao.com)进行爬取网页获取有用信息 解释2: 使用程序模拟浏览器去向服务器发送请求获取响应信息 1.2 爬虫的核心 爬取网页:爬取整个网页 包含了网页中所有得内容 解析数据:将网页中你得到的数据 进行解析 难点:爬虫和反爬虫之间的博弈(数据获取与数据保护之间的对抗) 1.3 爬虫的用途 数据分析/人工数据集 社交软件冷启动(新平台没有足够的人流使用爬虫爬去其他类似于(微博)等的用户数据来吸引用户下载) 舆情监控(一些灾情信息等数据的获取) 竞争对手监控(不同购物平台爬取对方相同物品的价格来适当降低价格吸引用户购买#) 1.4 爬虫分类 通用爬虫不常用抓取系统重要组成部分抓取的是一整张页面的数据。 聚焦爬虫建立在通用爬虫的基础上抓取的是页面中特定的局部内容。 增量式爬虫检测网站中数据更新的情况只抓取网站中最新更新的数据。 1.5 爬虫带来的风险 爬虫干扰了被访问网站的正常运营 爬虫抓取了受到法律保护的特定类型的数据或信息 1.6. 反爬手段 1.7 爬虫网络请求 请求过程: 客户端指web浏览器向服务器发送请求 请求分为四部分: 请求网址 --request url 请求方法 --request methods 请求头 – request header 请求体 – request body 可以通过F12查看请求响应 1.8 爬虫基本流程 确认目标:目标url:www.baidu.com发送请求: 发送网络请求获取到特定的服务端给你的响应提取数据:从响应中提取特定的数据jsonpath/xpath/re保存数据:本地(html、json、txt)、数据库 注意: 获取到的响应中有可能会提取到还需要继续发送请求的ur1可以拿着解析到的url继续发送请求 二、urllib库初识 2.1 http和https协议 概念和区别 http协议:超文本传输协议默认端口号是80 超文本:不仅仅限于文本还包括图片、音频、视频 传输协议:指使用共用约定的固定格式来传递转换成字符串的超文本内容 https协议: http ssl(安全套接字层)默认端口号是443 带有安全套接字层的超文本传输协议 ssl对传输的内容进行加密 https比http更安全但是性能更低 2.2 编码解码的使用 图片、视频、音频需要以bytes类型的格式来存储 # 编码--encode() 将str转变为对应的二进制 str 周杰伦 print(str.encode())# 解码--decode() 将二进制转为str str b\xe5\x91\xa8\xe6\x9d\xb0\xe4\xbc\xa6 print(str.decode())2.3 urllib的基本使用 # 前提获取数据的前提要联网# 需求使用urllib获取百度首页的源码# 1. 导入urllib包不用安装 import urllib.request# 1.定义一个url就是需要访问的地址 url http://www.baidu.com# 2.模拟浏览器向服务器发送请求 # response包含页面源码和响应头信息等等 response urllib.request.urlopen(url)# 3.获取响应中的页面源码只要源码 # read方法返回的是带b的二进制的数据 content response.read()# 4.打印数据 # print(content) 二进制# 5.该编码格式(解码 decode方法) # decode的默认解码就是utf-8 因而也可以省略参数 print(content.decode(utf-8))2.4 一个类型六个方法 # 基础操作 import urllib.requesturl http://www.baidu.comresponse urllib.request.urlopen(url)# 一个类型和六个方法# 判断类型 # class http.client.HTTPResponse # print(type(response))# read()方法是单字节的读取数据速度慢 # content response.read() # 表示只读5个字节 # content response.read(5) # print(content)# readline()方法 读取一行速度快 # content response.readline() # print(content)# readlines()方法 读取所有行 # content response.readlines() # print(content)# 返回状态码 200表示成功 证明逻辑是对的 print(response.getcode())# 返回url地址 print(response.geturl())# 返回状态信息和响应头 print(response.getheaders())2.5 下载网页数据 # 可以下载文件/音频/视频..... # 适用于批量下载import urllib.requesturl_page http://baidu.com# 使用urlretrieve()方法 # 第一个参数是url地址第二个参数是保存的文件名 # 返回的是html文件所以后缀写html # urllib.request.urlretrieve(url_page, baidu.html)# 下载图片 url_img https://tse1-mm.cn.bing.net/th/id/OIP-C.hMxUTa_ah0EEEKjzMrcKZgHaJF?w204h318c7r0o7cbiwp1dpr1.1pid1.7rm3.jpg urllib.request.urlretrieve(url_img, img.jpg)# 下载视频mp4不再演示2.6 带单个参数的页面抓取get请求 import urllib.request import urllib.parse# url http://www.baidu.com/s?ieUTF-8wd%E8%94%A1%E5%BE%90%E5%9D%A4 # url http://www.baidu.com/s?ieUTF-8wd蔡徐坤 # 需要将中文进行编码 导入quote即可 name urllib.parse.quote(蔡徐坤) # print(name)# 将%E8%94%A1%E5%BE%90%E5%9D%A4 转化为 蔡徐坤 # 使用unquote即可 # rename urllib.parse.unquote(name) # print(rename)# 可以用户自己输入名字进行修改name url http://www.baidu.com/s?ieUTF-8wd name response urllib.request.urlopen(url) content response.read().decode() print(content)2.7 定制request使用ua反爬 再来了解一下ua反爬 user Agent中文名为用户代理简称 UA它是一个特殊字符串头使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引、浏览器语言、浏览器插件等。 通俗的讲 ua能使得浏览器认为是请求不来自我们的爬虫程序而是来自浏览器本身 import urllib.request import urllib.parsename urllib.parse.quote(蔡徐坤)url https://www.baidu.com/s?ieUTF-8wd name # 定制request header {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 } request urllib.request.Request(urlurl, headersheader) response urllib.request.urlopen(request) content response.read().decode() print(content)2.8 多字段的字符转码 # 当url为多个参数的时候进行转码 import urllib.parse import urllib.request# http://www.baidu.com/s?wd周杰伦sex男# 必须用字典才可以 data {wd: 周杰伦,sex: 男 }a urllib.parse.urlencode(data) # print(a) # 获取网页源码 url https://www.baidu.com/s? a # print(url) header {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 } request urllib.request.Request(urlurl, headersheader) response urllib.request.urlopen(request) content response.read().decode() print(content)2.9 post请求的使用 import json import urllib.request import urllib.parseurl https://fanyi.baidu.com/sug# 构建post请求的数据 字典形式 data {kw: translate } # post请求必须添加编码 转变为二进制的数据 data urllib.parse.urlencode(data).encode(utf-8) # print(data) request urllib.request.Request(url url, data data) response urllib.request.urlopen(request) content response.read().decode(utf-8) print(content) # 获取的数据是json格式 字符串被编码了转化为字典字符串正常显示 obj json.loads(content) print(obj,type(obj)) 2.10 异常处理 import urllib.request url http://www.baidu.com1 try:response urllib.request.urlopen(url)print(response.read().decode(utf-8)) except urllib.error.URLError:print(发送错误)三、 requests请求的使用 上面单纯使用urllib的方式显然麻烦了不少并且不易于理解那么有没有更简单更容易上手的方法呢有的兄弟有的可以直接使用requests的方式。 3.1 下载requests包 方式一使用命令行安装 打开命令行cmdwin R输入pip -V 查看pip是否正常安装python正常安装的情况下pip自动安装输入 pip install requests默认国外地址安装较慢这里使用国内地址 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple等待安装成功提示即可 方式二使用pycharm直接安装 在右下脚找到python软件包搜索requests下载安装即可也可以使用国内地址进行安装 Tip: 可以使用pip uninstall 包名 来卸载指定的包。 3.2 requests的基本使用 # 爬取百度页面的源码# 1. 导包 import requests# 2. 发送请求 # 进入百度查看是否是get请求 url http://www.baidu.com response requests.get(url) # print(response) #Response [200]可以直接获取响应码# 获取相应 # text属性会自动寻早一个解码方式去解码会出现报错 # 解决方式为 讲response直接加入encoding即可 # response.encoding utf-8 # print(response.text)# 方式二 使用content方法 加上解码即可 print(response.content.decode())3.3 响应的保存 图片的保存 # 用resquests来保存一张图片import requests url https://ww4.sinaimg.cn/mw690/0078WY2egy1i139fqp2wqj31jk2bcn61 # 先判断get请求 res requests.get(url) # b形式数据图片存储 # print(res.content) # 通过文件的形式保存 一定要带上b模式啊 with open(img.jpg, wb) as f:f.write(res.content)百度页面的保存 import requests url http://www.baidu.com res requests.get(url) with open(baidu.html, w,encodingutf-8) as f:f.write(res.content.decode())3.4 响应对象的其他属性 import requests url http://www.baidu.com res requests.get(url) #打印响应的ur1 print(res.url)#打印响应对象的请求头 print(res.request.headers)# 打印响应头 print(res.headers)3.5 用户代理介绍 import requests url1 http://www.baidu.com #509723 url2 https://www.baidu.com #227# res requests.get(url2) # content res.content.decode() # print(len(content))# 使用用户代理反爬虫 # 依旧是写成字典形式 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 }# 添加ua 让服务器认为是浏览器在发送请求response requests.get(url2,headersheaders) content response.content.decode() print(len(content)) # 289183.6 构建ua池 import random # 构建ua池防止多次调用被反爬# 方法1 自己写ua池 uAlist [Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36,Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1,Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Mobile Safari/537.36 ] # 随机获取一个ua # print(random.choice(uAlist))# 方法2 外包生成ua # 下载fake-useragent包 # 频繁调用的时候可能会报错 from fake_useragent import UserAgent print(UserAgent().random)3.7 带参数的请求 # 带参数数据的请求爬取 import requestsurl https://www.baidu.com/s?ieUTF-8headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 } data {wd: 蔡徐坤 }res requests.get(url,headersheaders,paramsdata) content res.content.decode() print(content)3.8 通过面向对象的方式来获取数据 # 获取明星页面信息并且保存 import requests class Star:def __init__(self):self.url https://www.baidu.com/s?ieUTF-8self.headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36}# 发送数据def send(self,params):response requests.get(self.url,headersself.headers,paramsparams)return response.text# 保存数据def save(self,content):with open(star.html,w,encodingutf-8) as f:f.write(content)def run(self):name input(请输入明星名称)params {wd:name}content self.send(params)self.save(content)star Star() star.run()3.9 post请求 post请求: 登录注册传输大文本内容# requests.post(url,data)# data参数接收一个字典 get跟post区别 get请求—比较多 post请求 – 比较少 get请求直接向服务器发送请求获取应内容 post请求是先给服务器一些数据然后再获取响应 get请求携带参数-- params post诗求携带参数- data # 百度翻译案例 import jsonimport requestsurl https://fanyi.baidu.com/sugheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 } data {kw: eye } response requests.post(url,headersheaders,datadata) content response.text # print(content) obj json.loads(content) print(obj)总结 通过本教程的学习我们系统地掌握了网络爬虫的基本原理和关键技术。从HTTP请求、HTML解析到动态页面渲染、反爬策略应对再到数据的清洗与存储我们一步步构建了一个完整的爬虫知识体系。 爬虫技术不仅仅是一种数据采集手段更是连接互联网世界与数据分析的桥梁。掌握爬虫技能后我们可以高效地获取所需数据为商业分析、学术研究、自动化运维等场景提供强大的数据支持。 然而爬虫开发并非没有边界。在实践过程中我们必须遵守目标网站的robots.txt协议尊重版权和隐私避免对服务器造成过大压力。同时随着反爬技术的不断升级爬虫开发者也需要持续学习灵活应对各种挑战。 未来随着人工智能和大数据的发展爬虫技术将继续演进与自然语言处理NLP、机器学习ML等技术结合创造更大的价值。希望读者能够在本教程的基础上进一步探索爬虫的高级应用如分布式爬虫、智能解析等不断提升自己的技术能力。 数据驱动未来爬虫赋能探索
http://www.zqtcl.cn/news/120810/

相关文章:

  • 电商网站建设去迅法网网站管理与建设试题
  • 做网站必须知道的问题wordpress制作论坛
  • 怎样在建设部网站查资质证书网页设计有哪些岗位
  • 安徽中色十二冶金建设有限公司网站cad制图初学入门
  • 开发网站监控工具网上开店怎么找货源
  • 标准网站建设报价单私密浏览器直播
  • wordpress焦点图网站seo分析
  • 域名申请哪个网站好江西有色建设集团有限公司网站
  • 新乡市做网站的公司百度推广开户费用多少
  • 免费建网站哪个平台好php 未定义函数wordpress
  • 个人网站 域名选择郑州那家做网站便宜
  • 网站建设技术合伙人的技术股份全国免费发布信息网站大全
  • 兼职网站平台有哪些新手怎么学做网站
  • 有没有直接做网站的软件iis一个文件夹配置多个网站
  • 网站怎么屏蔽ip访问信息发布网站建设
  • 陕西省住房城乡建设厅网站管理中心电信服务器
  • 外国优秀网站设计程序员做任务的网站
  • 购物网站项目经验开发一个游戏软件需要多少钱
  • 专业的大连网站建设电商网站支付方案
  • 手机如何建设网站首页株洲搜索引擎优化
  • 辉县市建设局网站制作网站站用的软件下载
  • 什么网站广告做多有没有不花钱建设网站的方法
  • 网站开发技术总监面试题五大门户网站分别是
  • 福州自助建设网站网站开发工具蜡笔小新
  • 扬州市住房和城乡建设网站html5 后台网站模板
  • 网站建设与设计意义宜兴做宠物的网站
  • 苏州建设工程人才招聘网信息网站wordpress前端库加速
  • 浙江手机版建站系统信息应用商店下载app
  • 广告投放网站动画设计模板
  • 网站发外链的好处页面跳转 英文