爬虫介绍

#  爬虫:又称网络蜘蛛,spider,一堆程序,从互联网中抓取数据----》数据清洗---->入库

# 爬虫需要掌握的知识
-抓取数据:发送网络请求(http),获得响应(http响应,响应头,响应体---》真正重要的数据在响应体中)
-python模块:requests,selenium -清洗数据:解析拿回来的数据---》json,xml,html,二进制
-json解析,xml解析。。。
-python模块:re,json,beautifulsoup4(bs4),lxml,selenium -入库:存文件,存mysql,redis,mongodb
-python模块:file,pymsql,redis-py,pymongo
# 反扒
-频率限制
-封ip(代理池),封账号(一堆小号:cookie池)
-请求头中带加密信息,referer,user-agent。。。
-响应回来的数据是加密
-验证码反扒(破解验证码---》第三方平台)
-js加密---》压缩---》加密方法其实在前端能看到---》看上去很晦涩
-手机设备:唯一id号 # 搜索引擎都是大爬虫
-百度输入框搜索---》美女---》去百度的数据库搜索----》显示在页面上
-百度一刻不停的在互联网中爬网页,爬完存到它的数据库
-seo优化:免费排中,排靠前
-sem优化:搜出来的靠前的,带广告的是花钱的,买断关键词 #可见即可爬

requests模块介绍和快速使用

# requests是模拟发送http请求的模块
-不仅仅可以做爬虫
-后端服务,请求别人服务 # pip3 install requests # 使用requests发送get请求
import requests
# res 响应对象,http响应,python包装成了对象,响应头,响应头。。。在res中都会有
res=requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html')
print(res.text) # 响应体转成字符串

get请求携带参数

# res = requests.get('http://www.aa7a.cn/?name=xxx&age=18')
# res = requests.get('http://www.aa7a.cn/',params={'name':'xxx',"age":18})
res = requests.get('https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3')
print(res.text) # 响应体转成字符串
print(res.url) # http://www.aa7a.cn/?name=xxx&age=18

url的编码和解码

from urllib.parse import quote,unquote
res = unquote('%E7%BE%8E%E5%A5%B3')
print(res)

携带请求头

# 发送get请求,有的网站,拿不到数据,模拟的不像,请求头的数据没有携带
# 请求头:1 User-Agent:客户端类型 2 referer :上一个页面的地址 3 cookie
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
res = requests.get('http://www.aa7a.cn/',headers=header)
print(res.text)

发送post请求,携带数据

header = {
'Referer': 'http://www.aa7a.cn/user.php?&ref=http%3A%2F%2Fwww.aa7a.cn%2Fuser.php%3Fact%3Dlogout',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
} data = {
'username': '1535114884@qq.com',
'password': '111111',
'captcha': 'xxxx',
'remember': 1,
'ref': ' http://www.aa7a.cn/',
'act': 'act_login'
}
# data,json请求体的数据
# 编码方式是 urlencoded
# res = requests.post('http://www.aa7a.cn/user.php', data=data, headers=header)
# # 编码是json格式
# # res = requests.post('http://www.aa7a.cn/user.php',json=data,headers=header)
# print(res.text)

携带cookie两种方式

# 方式一:携带在请求头中
# header = {
# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
# 'Cookie':'deviceId=web.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiI2Mzk1OTEzMS1lMzE2LTRlNmItYWFlNi1mNDM0ZTEzZDQ4MzkiLCJleHBpcmUiOiIxNjkxMjIxODQ3NjAwIn0._tWo9ROyqRWXNCJA-ogCZ8MRBl4S-7tbB2wr6wLwci4; Hm_lvt_03b2668f8e8699e91d479d62bc7630f1=1688629848; __snaker__id=GmosTb6BqFJK2NsT; gdxidpyhxdE=bI5WeJdvSvxuozJLw6Sodah8g4wSXI%5CAGHA1Cn%2B573j5p5u3tTcpHw%2FKVWuoso76x2V1fxENE7jUBh%2FBZhMLRoXQdnvjcwO93W0A0QguQWpzQOGz6YiWdmXcJAbzpyI0flcPKu0o%2FajAM6spZ5gpHe2toaoZwaLt%5Cwm33oG19TcPouGk%3A1688630760372; YD00000980905869%3AWM_NI=hz7CdBywrI1ITXj%2BeDEs8Mphu1liSwPzyqW6zkG91wDDx50X1EV6qH%2FhEETlFaDIAXf4Rv2WI5bV6RCLGvy0zPMK7LULYiuRGg0HqFJuv9fgjQXVgpEy5gfhV02dVnM6Mlo%3D; YD00000980905869%3AWM_NIKE=9ca17ae2e6ffcda170e2e6ee91cb47aa9e8c94e245e9968ab2c85e838f9bb1c53cf4b397a4e173bba7b898ca2af0fea7c3b92aaca6f9a4e74abba9beaab4439888a6cce85087adf8aef364b7efa48ad27d94a6b792d63ebab589dab47d889cb8d6b354f39b9ad7f444edb88ba6d76886bf8caac454a6ec9e97b15d8bebaeb7b55a81948997fc3cba9083acb6489794978af85a85b900a9f44e8aabbadae56daa8f98b7e67c87a7fb88e56496f0fe85d5668fea838dee37e2a3; YD00000980905869%3AWM_TID=6PefENQWNmhBAAVQQUPQlgzdWOzmnwwf; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiJjdHVfNjg4NjI5OTM5MjkiLCJleHBpcmUiOiIxNjkxMjIxOTM5MzgxIn0.15Hu6OOKG9oMqsjiD_Wla0Wv15ibXNSM62cvdlXUDYg; Hm_lpvt_03b2668f8e8699e91d479d62bc7630f1=1688629965',
# }
# data = {
# 'linkId': '39196722'
# }
# res = requests.post('https://dig.chouti.com/link/vote', headers=header,data=data)
# print(res.text) # 方式二:
# res1 = requests.get('http://www.aa7a.cn/',cookies=cookie)

requests的基础使用的更多相关文章

  1. 03爬虫-requests模块基础(1)

    requests模块基础 什么是requests模块 requests模块是python中原生基于网络模拟浏览器发送请求模块.功能强大,用法简洁高效. 为什么要是用requests模块 用以前的url ...

  2. python学习之-requests模块基础

    安装版本:2.18 模块导入:import requests l  发送请求 发送GET请求: 获取GITHUB的公共时间线 r = requests.get(url='https://api.git ...

  3. requests用法基础-进阶

    本节内容 模块的安装 -----------------------基础用法--------------------- GET用法.POST用法 -----------------------进阶用法 ...

  4. Python爬虫 requests库基础

    requests库简介 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支 ...

  5. 一:requests爬虫基础

    一,什么是爬虫? 描述: 本质是一个自动化程序,一个模拟浏览器向某一个服务器发送请求获取响应资源的过程. 爬虫的基本流程 robots.txt协议 编写一个robots.txt的协议文件来约束爬虫程序 ...

  6. 爬虫之requests模块基础

    一.request模块介绍 1. 什么是request模块 - python中原生的基于网络请求的模块,模拟浏览器发起请求. 2. 为什么使用request模块 - urllib需要手动处理url编码 ...

  7. requests模块基础

    requests模块 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bor ...

  8. 03 requests模块基础

    1. requests 模块简介 什么是requests 模块 requests模块是python中原生的基于网络请求的模块,功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位.requests ...

  9. 05爬虫-requests模块基础(2)

    今日重点: 1.代理服务器的设置 2.模拟登陆过验证码(静态验证码) 3.cookie与session 4.线程池 1.代理服务器的设置 有时候使用同一个IP去爬取同一个网站,久了之后会被该网站服务器 ...

  10. Requests的基础学习

    官方文档链接:http://cn.python-requests.org/zh_CN/latest/ 安装: pip install requests 错误异常: 1.所有Requests显式抛出的异 ...

随机推荐

  1. 【SSM项目】尚筹网(三)基于Servlet3.0项目搭建:异常映射和拦截器机制

    1 异常映射 1.1 目标 使用异常映射对项目的异常和错误提示进行统一管理. 1.2 思路 对于普通的页面请求,异常映射机制捕获到handler方法抛出的异常后会响应为一个错误页面,对于处理ajax请 ...

  2. odoo wizard界面显示带复选框列表及勾选数据获取

    实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的 ...

  3. SpringCloud导入spring boot项目当作子模块微服务IDEA不识别子module问题

    1.在父工程下面引入module. <modules> <module>study-design-mode</module> </modules> 2. ...

  4. IE盒模型和标准盒模型之间的差别

    1.W3C标准盒子模型 w3c盒子模型的范围包括margin.border.padding.content,并且content部分不包含其他部分 2.IE盒子模型 IE盒子模型的范围包括margin. ...

  5. 机器学习04-(决策树、集合算法:AdaBoost模型、BBDT、随机森林、分类模型:逻辑回归)

    机器学习04 机器学习-04 集合算法 AdaBoost模型(正向激励) 特征重要性 GBDT 自助聚合 随机森林 分类模型 什么问题属于分类问题? 逻辑回归 代码总结 波士顿房屋价格数据分析与房价预 ...

  6. Node.js躬行记(28)——Cypress自动化测试实践

    最近在研究如何提升项目质量,提炼了许多个用于自测的测试用例,但是每次修改后,都手工测试,成本太高,于是就想到了自动化测试. 在一年前已将 Cypress 集成到管理后台的项目中,不过没有投入到实践中. ...

  7. google + chatgpt

    google注册 网址:https://www.google.com/ 使用右上角登录按钮 点击创建账户然后根据步骤注册 chagpt注册 1.https://chat.openai.com/auth ...

  8. selenium 多窗口处理与网页frame

    多窗口处理 点击某些链接,会重新打开一个窗口,对于这种情况.想在薪页面操作,就得先切换窗口了. 获取窗口得唯一标识用句柄表示,所以只需要切换句柄,就可以在多个页面进行操作了 1. 先获取到当前得窗口句 ...

  9. List 集合手动分页的方法总结

    前言 在工作中难免会遇到,将组装的集合数据进行分页处理,现在我将自己手动分页的三种方法进行总结,有不对的地方敬请大家批评指正! 一.数据准备 // 当前页 int pageIndex = 1; // ...

  10. 2020-11-16:手写代码:leetcode第406题。假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。

    福哥答案2020-11-16: ①排序.按照[身高]降序排列.如果[身高]一样,按照[人数]升序排列.②插入.遍历这个队列,按照[人数]插入相应位置. 采用leetcode里的代码,golang代码如 ...