位置: IT常识 - 正文

爬虫(爬虫技术是做什么的)

编辑:rootadmin
一、爬虫介绍 1.名字解释 ​爬虫:spider,网络蜘蛛 2.本质原理 现在的所有软件原理:大部分都是基于http请求发送和获取请求 pc端的网页 移动端的app 模拟发送http请求,从别人的服务端获取数据 怎么绕开反扒:不同程序的反扒措施不一样,比较复杂,具体情况具体分析 3.爬虫原理 发送 ... 目录一、爬虫介绍

1.名字解释2.本质原理3.爬虫原理4.爬虫是否合法5.百度其实就是个大爬虫二、requests模块发送get请求

1.requests模块2.下载requests模块三、get请求携带参数

1.地址栏中拼接2.使用params参数携带四、url编码和解码五、携带请求头

1.前提2.情况:爬取某个网站,不能正常返回 >>> 说明请求模拟的不像六、携带cookie七、发送post请求八、响应Response九、获取二进制数据十、解析解析json一、爬虫介绍1.名字解释

推荐整理分享爬虫(爬虫技术是做什么的),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:爬虫数据采集,爬虫网站,爬虫数据采集,爬虫python入门,爬虫python入门,爬虫是什么意思,爬虫数据采集,爬虫python全套教学,内容如对您有帮助,希望把文章链接给更多的朋友!

​爬虫:spider,网络蜘蛛

2.本质原理现在的所有软件原理:大部分都是基于http请求发送和获取请求pc端的网页移动端的app模拟发送http请求,从别人的服务端获取数据怎么绕开反扒:不同程序的反扒措施不一样,比较复杂,具体情况具体分析3.爬虫原理发送http请求【requests,selenium】》》》 第三方服务端》》》服务端响应的数据解析出想要的数据【selenium,b64】》》》 入库(文件、数据库、Excel、Redis、MongoDB等等)scrapy:专业的爬虫框架4.爬虫是否合法

爬虫其实算是擦边的行为,遵守规则的爬,不会违法。(在这里忠告各位玩家,一定要做遵纪守法的好公民,牢饭不香,缝纫机不好踩。)

那么爬虫的规则是什么呢?>>> 爬虫协议

爬虫协议:每个网站的根路径下都有robots.txt,这个文件规定了:该网站能爬的和不能爬的数据

5.百度其实就是个大爬虫在百度的搜索框中输入搜索内容,回车后返回的数据,是百度数据库中的数据而百度,其实在一刻不停的在互联网中爬取各个页面,链接地址>>>爬到的数据保存到自己的数据库点击之后,跳转到真正的地址上去核心:搜索,在海量数据中搜索出想要的数据SEO:免费的搜索,排名靠前

也叫:搜索引擎优化、关键词自然排名。通过对站内和站外的优化来提高搜索引擎对网站的友好度,并提高网站的排名SEM:花钱买关键字

也叫:搜索引擎营销除了对网站做优化以外,也可以用便捷的途径来更快的让客户找到你的网站,这种便捷的方式就是通过付费的手段。二、requests模块发送get请求1.requests模块

模拟发送http请求的模块

爬虫(爬虫技术是做什么的)

不仅爬虫用它,后期调用第三方接口,也会用到它

可以做长链接短链接的转换

2.下载requests模块

pip3 install requests

本质是封装了内置模块urlib3

import requestsres = requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html')print(res.text) # 响应体中的文本内容print(res.__dict__.keys())'''dict_keys([ '_content', '_content_consumed', '_next', 'status_code', 'headers', 'raw', 'url', 'encoding','history', 'reason', 'cookies', 'elapsed', 'request', 'connection'])'''三、get请求携带参数1.地址栏中拼接res=requests.get('https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3')print(res.text)2.使用params参数携带res = requests.get('https://www.baidu.com/s', params={ 'wd': '美女', 'name': 'lqz'})print(res.text)四、url编码和解码

‘美女’被编码后 >>> E7%BE%8E%E5%A5%B3

from urllib import parseres = parse.quote('美女')print(res) # E7%BE%8E%E5%A5%B3res = parse.unquote('%E7%BE%8E%E5%A5%B3')print(res) # 美女五、携带请求头1.前提

http请求,有请求头,有些网站就是通过请求头来做反扒

2.情况:爬取某个网站,不能正常返回 >>> 说明请求模拟的不像

User-Agent:

客户端类型:浏览器,手机端浏览器,爬虫类型,程序,scrapy。一般伪造成浏览器。

referer:上次访问的地址

Referer:https://www.lagou.com/gongsi/如果要登录,模拟向登录接口发送请求正常操作:必须在登录页面上才能干这事如果没有携带referer,网站就会认为你是恶意的,拒绝掉图片防盗链

cookie:认证后的cookie,就相当于登录了

header

# header={# # 客户端类型# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'# }# res=requests.get('https://dig.chouti.com/',headers=header)# print(res.text六、携带cookie# 4 请求中携带cookie### 方式一:直接带在请求头中#模拟点赞# data={# 'linkId':'36996038'# }# header={# # 客户端类型# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',# #携带cookie# 'Cookie':'deviceId=web.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiI3MzAyZDQ5Yy1mMmUwLTRkZGItOTZlZi1hZGFmZTkwMDBhMTEiLCJleHBpcmUiOiIxNjYxNjU0MjYwNDk4In0.4Y4LLlAEWzBuPRK2_z7mBqz4Tw5h1WeqibvkBG6GM3I; __snaker__id=ozS67xizRqJGq819; YD00000980905869%3AWM_TID=M%2BzgJgGYDW5FVFVAVQbFGXQ654xCRHj8; _9755xjdesxxd_=32; Hm_lvt_03b2668f8e8699e91d479d62bc7630f1=1666756750,1669172745; gdxidpyhxdE=W7WrUDABQTf1nd8a6mtt5TQ1fz0brhRweB%5CEJfQeiU61%5C1WnXIUkZH%2FrE4GnKkGDX767Jhco%2B7xUMCiiSlj4h%2BRqcaNohAkeHsmj3GCp2%2Fcj4HmXsMVPPGClgf5AbhAiztHgnbAz1Xt%5CIW9DMZ6nLg9QSBQbbeJSBiUGK1RxzomMYSU5%3A1669174630494; YD00000980905869%3AWM_NI=OP403nvDkmWQPgvYedeJvYJTN18%2FWgzQ2wM3g3aA3Xov4UKwq1bx3njEg2pVCcbCfP9dl1RnAZm5b9KL2cYY9eA0DkeJo1zfCWViwVZUm303JyNdJVAEOJ1%2FH%2BJFZxYgMVI%3D; YD00000980905869%3AWM_NIKE=9ca17ae2e6ffcda170e2e6ee92bb45a398f8d1b34ab5a88bb7c54e839b8aacc1528bb8ad89d45cb48ae1aac22af0fea7c3b92a8d90fcd1b266b69ca58ed65b94b9babae870a796babac9608eeff8d0d66dba8ffe98d039a5edafa2b254adaafcb6ca7db3efae99b266aa9ba9d3f35e81bdaea4e55cfbbca4d2d1668386a3d6e1338994fe84dc53fbbb8fd1c761a796a1d2f96e81899a8af65e9a8ba3d4b3398aa78285c95e839b81abb4258cf586a7d9749bb983b7cc37e2a3; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiJjZHVfNTMyMDcwNzg0NjAiLCJleHBpcmUiOiIxNjcxNzY1NzQ3NjczIn0.50e-ROweqV0uSd3-Og9L7eY5sAemPZOK_hRhmAzsQUk; Hm_lpvt_03b2668f8e8699e91d479d62bc7630f1=1669173865'# }# res=requests.post('https://dig.chouti.com/link/vote',data=data,headers=header)# print(res.text)## 方式二:通过cookie参数:因为cookie很特殊,一般都需要携带,模块把cookie单独抽取成一个参数,是字典类型,以后可以通过参数传入data={ 'linkId':'36996038'}header={ # 客户端类型 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',}res=requests.post('https://dig.chouti.com/link/vote',data=data,headers=header,cookies={'key':'value'})print(res.text)# 部署项目出现的可能的问题-路径问题:ngxin,uwsgi。。。 -数据库用户名密码问题 -前端发送ajax请求问题 -浏览器中访问一下banner接口 -nginx 8080 -安全组 80 8080 3306 -转到uwsgi的8888,视图类 -虚拟环境真实环境都要装uwsgi -启动uwsgi是在虚拟环境中启动的七、发送post请求###6 发送post请求# data = {# 'username': '616564099@qq.com',# 'password': 'lqz123',# 'captcha': 'cccc',# 'remember': 1,# 'ref': 'http://www.aa7a.cn/',# 'act': 'act_login'# }# res = requests.post('http://www.aa7a.cn/user.php', data=data)# print(res.text)# print(res.cookies) # 响应头中得cookie,如果正常登录,这个cookie 就是登录后的cookie RequestsCookieJar:当成字典## # 访问首页,携带cookie,# # res2 = requests.get('http://www.aa7a.cn/', cookies=res.cookies)# res2 = requests.get('http://www.aa7a.cn/')# print('616564099@qq.com' in res2.text)## 6.2 post请求携带数据 data={} ,json={} drf后端,打印 request.data# data=字典是使用默认编码格式:urlencoded# json=字典是使用json 编码格式# res = requests.post('http://www.aa7a.cn/user.php', json={})## 6.4 request.session的使用:当request使用,但是它能自动维护cookie# session=requests.session()# data = {# 'username': '616564099@qq.com',# 'password': 'lqz123',# 'captcha': 'cccc',# 'remember': 1,# 'ref': 'http://www.aa7a.cn/',# 'act': 'act_login'# }# res = session.post('http://www.aa7a.cn/user.php', data=data)# res2 = session.get('http://www.aa7a.cn/')# print('616564099@qq.com' in res2.text)八、响应Response# Response对象,有很多属性和方法-text -cookiesimport requestsheader = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',}respone = requests.get('https://www.jianshu.com', params={'name': 'lqz', 'age': 19},headers=header)# respone属性print(respone.text) # 响应体的文本内容print(respone.content) # 响应体的二进制内容print(respone.status_code) # 响应状态码print(respone.headers) # 响应头print(respone.cookies) # 响应cookieprint(respone.cookies.get_dict()) # cookieJar对象,获得到真正的字段print(respone.cookies.items()) # 获得cookie的所有key和value值print(respone.url) # 请求地址print(respone.history) # 访问这个地址,可能会重定向,放了它冲定向的地址print(respone.encoding) # 页面编码九、获取二进制数据###8 获取二进制数据 :图片,视频## res = requests.get(# 'https://upload.jianshu.io/admin_banners/web_images/5067/5c739c1fd87cbe1352a16f575d2df32a43bea438.jpg')# with open('美女.jpg', 'wb') as f:# f.write(res.content)# 一段一段写res=requests.get('https://vd3.bdstatic.com/mda-mk21ctb1n2ke6m6m/sc/cae_h264/1635901956459502309/mda-mk21ctb1n2ke6m6m.mp4')with open('美女.mp4', 'wb') as f: for line in res.iter_content(): f.write(line)十、解析解析json# 前后分离后,后端给的数据,都是json格式,# 解析json格式res = requests.get( 'https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=%E4%B8%8A%E6%B5%B7&query=%E8%82%AF%E5%BE%B7%E5%9F%BA&output=json')print(res.text)print(type(res.text))print(res.json()['results'][0]['name'])print(type(res.json()))
本文链接地址:https://www.jiuchutong.com/zhishi/312020.html 转载请保留说明!

上一篇:c语言中数组访问越界如何理解(c语言中数组怎么用)

下一篇:学习笔记——Servlet

  • 这些年,微信一直没有的六个功能(微信2020这一年)

    这些年,微信一直没有的六个功能(微信2020这一年)

  • 苹果手机资源库怎么移出来(苹果手机资源库怎么不显示)

    苹果手机资源库怎么移出来(苹果手机资源库怎么不显示)

  • 水星MAC1200R怎么设置访客网络(水星mac1200r怎么判断是千兆)

    水星MAC1200R怎么设置访客网络(水星mac1200r怎么判断是千兆)

  • airpodspro安卓可以用吗(airpodspro安卓可以定位吗)

    airpodspro安卓可以用吗(airpodspro安卓可以定位吗)

  • 华为荣耀30的上市时间(华为荣耀30上面的黑色的是什么)

    华为荣耀30的上市时间(华为荣耀30上面的黑色的是什么)

  • 三星手机黑屏重启(三星手机黑屏重启怎么办)

    三星手机黑屏重启(三星手机黑屏重启怎么办)

  • 小米9pro可以使用4g卡吗(小米9pro支持双卡双待吗)

    小米9pro可以使用4g卡吗(小米9pro支持双卡双待吗)

  • 苹果手机正在充电标志(苹果手机正在充电的显示)

    苹果手机正在充电标志(苹果手机正在充电的显示)

  • 华为nova7pro可以开空调吗(华为nova7pro可以装两张卡吗)

    华为nova7pro可以开空调吗(华为nova7pro可以装两张卡吗)

  • 照片实况是什么意思(照片实况叫什么)

    照片实况是什么意思(照片实况叫什么)

  • 华为p40pro新功能介绍(华为p40pro+功能)

    华为p40pro新功能介绍(华为p40pro+功能)

  • iphone保修期内电池损耗多少可以免费换(iphone保修期内电池低于80)

    iphone保修期内电池损耗多少可以免费换(iphone保修期内电池低于80)

  • 怎么把网盘的照片存到相册里(怎么把网盘的照片存到u盘)

    怎么把网盘的照片存到相册里(怎么把网盘的照片存到u盘)

  • 小米云台存储卡异常(小米云台存储卡满了)

    小米云台存储卡异常(小米云台存储卡满了)

  • 蚂蚁森林怎么解锁环保证书(蚂蚁森林怎么解锁种树)

    蚂蚁森林怎么解锁环保证书(蚂蚁森林怎么解锁种树)

  • 手机网页右边显示不全(手机浏览器网页右边看不到)

    手机网页右边显示不全(手机浏览器网页右边看不到)

  • 荣耀play4tpro有耳机孔吗(荣耀play4pro有耳机插孔吗)

    荣耀play4tpro有耳机孔吗(荣耀play4pro有耳机插孔吗)

  • 腾讯视频同时登录几个

    腾讯视频同时登录几个

  • 隐藏列如何显示出来(隐藏列在哪里)

    隐藏列如何显示出来(隐藏列在哪里)

  • 抖音怎么查别人手机号(抖音怎么查别人给我刷礼物记录)

    抖音怎么查别人手机号(抖音怎么查别人给我刷礼物记录)

  • opopa3耳机在哪设置(oppoa3手机耳机模式怎么调回来)

    opopa3耳机在哪设置(oppoa3手机耳机模式怎么调回来)

  • 6spwifi提示密码错误(6splus连接wifi显示密码错误)

    6spwifi提示密码错误(6splus连接wifi显示密码错误)

  • 手机深色模式省电吗(手机深色模式省电多少)

    手机深色模式省电吗(手机深色模式省电多少)

  • 如何知道好友知乎账号(如何知道好友知乎的名字)

    如何知道好友知乎账号(如何知道好友知乎的名字)

  • 小爱音箱没有wifi可以用吗(小爱音箱没有wifi怎么连接手机)

    小爱音箱没有wifi可以用吗(小爱音箱没有wifi怎么连接手机)

  • 路由器连接线怎么插(路由器连接线怎么安装)

    路由器连接线怎么插(路由器连接线怎么安装)

  • 怎么看手机有无nfc功能(怎么看手机有无nfc)

    怎么看手机有无nfc功能(怎么看手机有无nfc)

  • 苹果xs max是双卡吗(苹果xsmax是双卡双待怎么用)

    苹果xs max是双卡吗(苹果xsmax是双卡双待怎么用)

  • python实例创建销毁的函数整理(用python创建一个列表)

    python实例创建销毁的函数整理(用python创建一个列表)

  • 偷税漏税逃税是什么意思
  • 银行承兑汇票和支票的区别
  • 生产成本怎么计算
  • 翻唱歌曲发行时怎么把原唱名字改了
  • 劳动合同和劳务合同有什么区别 举例
  • 进销存工作流程
  • 万元版和十万元版可以一起用吗
  • 在建工程转固定资产后如何计提折旧
  • 企业股权转让影响利润吗
  • 会计利润包不包括营业外支出
  • 预付款如何扣除
  • 材料盘亏可收回成本吗
  • 在建工程转固后又发生成本
  • 事业单位其他应付款贷方余额表示什么
  • 出口退税和企业所得税
  • 关联关系的判定标准
  • 第三方支付模式的交流流程
  • 对账单回复函
  • 4月份到期包括4月吗
  • 支票收款
  • 投标标费退回怎么做分录
  • 财务软件里凭证打印如何设置不打印三级科目
  • 个税在发工资的时候直接扣下来吗
  • 1697510003
  • 私车公用报销怎么算
  • 剑灵玩一会就崩溃
  • 车辆的增值税和消费税
  • 会计中如何区分借方和贷方
  • 会计科目对应的会计要素
  • 企业购地流程
  • 蝾螈白话怎么读
  • 有形动产融资租赁税率是多少
  • 企业提取盈余公积会引起所有者权益变动吗
  • 代扣代缴个税手续费返还会计分录
  • Treetop walkway in Hainich National Park, Thuringia, Germany (© mauritius images GmbH/Alamy)
  • 交易性金融资产的入账价值
  • php链式操作
  • 前端项目性能优势怎么写
  • PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络
  • 房产原值是否含增值税
  • 行政单位收到银行的存款
  • java泛型的定义和使用
  • SQLserver数据库的while附近有语法错误,应为AS
  • 玩转mongodb4.0从入门到实践
  • 开发公司出租未开发发票
  • 无法支付的应付账款转作营业外收入
  • 厂房改造费用算固定资产吗
  • 影响留存收益变动的选折题
  • sqlserver有实例吗
  • 单位收到已交个人社保
  • 费用报销单填写标准
  • 农民工工资专用账户管理制度的办法
  • 开办费没发票如何做账?
  • 小规模公司购买汽车如何抵税
  • 资本和资产的区别举例说明
  • 彻底删除sql server2019
  • sql参数化还是被注入了
  • windows虚拟内存转移有什么危害
  • vista win
  • JQS.exe是什么进程
  • 注册表.bak
  • ubuntu 系统卡住
  • centos 7.2安装
  • win10系统怎么关闭病毒防护
  • linux 更改目录名
  • win7c盘突然满了怎么回事
  • jQuery.trim() 函数及trim()用法详解
  • qt::windowtype
  • 深入了解工作优势怎么回答
  • (转)Unity3D NGUI在UI上显示3D模型
  • 权限android.permission.write
  • eclipse自动生成
  • 医疗费发票查询
  • 土地增值税清算条例与实施细则
  • 电子税务局申领的发票怎么读入
  • 3.0t交强险
  • 京东商城发票查询
  • 失业金存在多个账户
  • 九江五室新楼盘
  • 建筑行业增值税税率2021
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设