首页 > 其他分享 >爬虫简介

爬虫简介

时间:2023-03-15 19:12:05浏览次数:28  
标签:http get 简介 爬虫 cookie res print requests

1 爬虫介绍

# 爬虫是什么
	-爬虫就是程序---》从互联网中,各个网站上,爬取数据[你能浏览的页面才能爬],做数据清洗,入库
    
# 爬虫的本质
	-模仿方式http请求,获取数据---》入库
    	-网站
        -app:抓包

# 补充:百度其实就是一个大爬虫
	-百度爬虫一刻不停的在互联网中爬取各个页面---》爬取完后---》保存到自己的数据库中
    -你在百度搜索框中搜索---》百度自己的数据库查询关键字---》返回回来
    -点击某个页面---》跳转到真正的地址上
    -seo
    -sem:充钱的 
        
# 咱们学习的
	-模拟发送http请求
    	-requests模块
        -selenium
        -反扒:封IP:ip代理,封帐号:cookie池
    -分析数据:bs4
    -入库:mysql,redis,文件中
    
    -爬虫框架:scrapy
-seo:
    SEO (Search Engine Optimization) 是指优化网站以在搜索引擎中提高排名的过程。目的是让搜索引擎更容易地找到和理解网站内容,从而提高网站的可见性和流量。SEO的目标是通过优化网站内容、结构和其他因素来提高搜索引擎的排名,使其在相关的搜索结果中排名更高。通过使用关键词研究、优化网站结构和内容,以及与其他网站建立高质量的链接,可以帮助提高SEO效果。SEO是一个复杂的过程,需要专业的技能和策略。
    
    SEO的实现涉及多个方面,包括以下几个方面:
1 关键词研究和优化:确定网站需要针对哪些关键词进行优化,并在网站的内容、标题、描述、URL等位置合理地使用这些关键词。
2 网站结构优化:优化网站的结构和代码,使搜索引擎能够更好地理解网站的内容,包括使用合适的HTML标记、网站结构布局优化、图片优化等。
3 内容优化:创建高质量、有价值的内容,包括文本、图像、视频等,并在网站上发布这些内容。确保内容符合搜索引擎的要求,并通过使用关键词和内部链接等方式进行优化。
4 外部链接建设:通过建立高质量的外部链接来提高网站的权威性和可信度。这些链接来自其他网站或社交媒体平台,通常是与相关领域或行业的网站建立链接。
5 移动优化:确保网站能够在移动设备上正常显示,并优化页面加载速度和响应速度。
6 监测和分析:使用工具来跟踪和分析网站的表现,包括流量、排名、反向链接等指标,以了解SEO策略的效果,并作出相应的调整。
7 这些都是SEO的基本实现策略,但是需要具体根据不同的网站类型和需求进行定制化的实施。同时,SEO是一个长期的过程,需要持续的优化和调整,以确保网站在搜索引擎中保持良好的排名。

2 requset模块介绍

# 使用python如何发送http请求
# 模块:request模块,封装了python聂志模块urllib
	使用requests可以模拟浏览器的请求(http),比起之前用到的urllib,requests模块的api更加便捷(本质就算封装了urllib3)
    
# 安装
pip install requests

3 request发送get请求

import

# res = requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html')
# print(res.text)

# 如果有的网站,发送请求,不返回数据,人家做了反扒---》拿不到数据,学习如何反扒
# res = reuqests.get('https://dig.chouti.com/')
# print(res.text)

4 request携带参数

import requests

# 方式一:直接拼接到路径中
# res = requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html?name=lqz&age=19')
# 方式二:使用params参数
res = requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html',params={'name':'guts', 'age': 22})
print(res.text)  # 返回页面内容
print(res.url)   # 返回网址

5 url编码解码

import requests
from urllib.parse import qupte,unquote

# res = requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html',params={'name':"彭于晏",'age':19})
# print(res.text)

# 如果是中文,在地址栏中会做url的编码:彭于晏:%E5%BD%AD%E4%BA%8E%E6%99%8F
# print(res.url)
# 'https://www.baidu.com/s?wd=%E5%B8%85%E5%93%A5'

# 编码:
# res=quote('彭于晏')
# print(res)

# 解码
res = unquote('%E5%BD%AD%E4%BA%8E%E6%99%8F')
print(res)

6 携带请求头

# 反扒措施之一,就是请求头

# http请求中,请求头中有一个很重要的参数 User-Agent
	-表明了客户端类型是什么:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
    -如果没有带这些请求头,后端就禁止
    -request发送请求,没有携带该参数,所以有的网站就禁止了
    
    
import requests
# http请求头:User-Agent,cookie,Connection

# http协议版本间的区别
# Connection :keep-alive
# http协议有版本:主流1.1 0.9 2.x
# http 基于TCP 如果建立一个http连接---》底层创建一个tcp连接
# 1.1比之前多了keep-alive
# 2.x比1.x多了  多路复用
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
}
res = requests.get('https://dig.chouti.com/',headers=headers)
print(res.text)

7 发送post请求,携带数据

import requests

# 携带登录信息,携带cookie
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    'Cookie': ''
}
# post请求,携带参数
data = {
    'linkId': '38063872'
}
res = requests.post('https://dig.chouti.com/link/vote', headers=headers, data=data)
print(res.text)

# 双token认证

8 自动登录,携带cookie的两种方式

# 登录功能,一般都是post

import requests

data = {
    'username': '',
    'password': '',
    'captcha': '3456',
    'remember': 1,
    'ref': 'http://www.aa7a.cn/',
    'act': 'act_login'
}

res = requests.post('http://www.aa7a.cn/user.php',data=data)
print(res.text)
# 响应中会有登录成功的cookie,
print(res.cookies)  # RequestsCookieJar  跟字典一样
# 拿着这个cookie,发请求,就是登录状态

# 访问首页,get请求,携带cookie,首页返回的数据一定会有  我的账号
# 携带cookie的两种方式  方式一是字符串,方式二是字典或CookieJar对象
# 方式二:放到cookie参数中
res1 = requests.get('http:www.aa7a.cn/', cookies=res.cookies)

print('[email protected]' in res1.text)

9 requests.session的使用

# 为了保持cookie,以后不需要携带cookie

import reqeusts

data = {
    'username': '',
    'password': '',
    'captcha': '3456',
    'remember': 1,
    'ref': 'http://www.aa7a.cn/',
    'act': 'act_login'
}

session = requests.session()
res = session.post('http://www.aa7a.cn/user.php', data=data)
print(res.text)
res1 = session.get('http://www.aa7a.cn/')  # 自动保持登录状态,自动携带cookie

print('[email protected]' in res1.text)

10 补充post请求携带数据编码格式

import requests

# data对应字典,这样写,编码方式是urlencoded
requests.post(url='xxxxxxxx',data={'xxx':'yyy'})
# json对应字典,这样写,编码方式是json格式
requests.post(url='xxxxxxxx',json={'xxx':'yyy'})
# 终极方案,编码就是json格式
requests.post(url='',
              data={'':1,},
              headers={
                  'content-type':'application/json'
              })

11 响应Response对象

# Response相应对象的属性和方法

import requests
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
}
respone = requests.get('http://www.jianshu.com',headers=headers)
# response属性
print(respone.text)  # 响应体转成了字符串
print(respone.content)  # 响应体的二进制内容

print(respone.status_code)  # 响应状态码
print(respone.headers)  # 响应头
print(respone.cookies)  # cookie是在响应头,cookie很重要,它单独做成了一个属性
print(respone.cookies.get_dict())  # cookieJar对象----》转成字段
print(respone.cookies.items())  # cookie的键值对

print(respone.url)  # 请求地址
print(respone.history)  # 不用关注

print(respone.encoding)  # 响应编码格式

12 编码问题

# 有的网站,打印
res.text --->发现乱码---》请求回来的二进制---》转成了字符串---》默认用utf8转---》
response.encoding='gbk'
再打印res.text它就用gbk转码

13 下载图片,视频

import requests

# res=requests.get('http://pic.imeitou.com/uploads/allimg/230224/7-230224151210-50.jpg')
# # print(res.content)
# with open('美女.jpg','wb') as f:
#     f.write(res.content)
#


res=requests.get('https://vd3.bdstatic.com/mda-pcdcan8afhy74yuq/sc/cae_h264/1678783682675497768/mda-pcdcan8afhy74yuq.mp4')
with open('致命诱惑.mp4','wb') as f:
    for line in res.iter_content():
        f.write(line)

标签:http,get,简介,爬虫,cookie,res,print,requests
From: https://www.cnblogs.com/DragonY/p/17219672.html

相关文章

  • 爬虫学习02之模拟登录以及代理
    一、调试模式介绍调试模式,即进入网页页面半代码模式,查看网页与代码一一对应关系。鼠标右键,再出现选项中找到检查进入调试模式,或者按键盘上的F12键进入调试模式。功能介......
  • 爬虫01
    目录1爬虫介绍2requests模块介绍3requests发送get请求4request携带参数5url编码解码6携带请求头7发送post请求,携带数据8自动登录,携带cookie的两种方式9requests.......
  • S355J2、S355J2力学性能、S355J2钢板简介期货订轧
    1、S355J2钢板简介:S355J2是欧标的一个商标相当于国标的Q345D。它是低合金高强度结构钢,因其良好的具有较好的冲击韧性和焊接功能所以这个商标的钢板在各种行业里都运用广泛。......
  • 爬虫-requests
    1.爬虫介绍爬虫就是程序从互联网中各个网站上爬取数据(只能爬区我们能看到的数据),然后进行数据清洗(筛选),入库。爬虫的本质:模拟http请求,获取数据,入库。百度就是一个大......
  • 爬虫介绍
    爬虫介绍爬虫是什么? -爬虫就是程序---》从互联网中,各个网站上,爬取数据[你能浏览的页面才能爬],做数据清晰爬虫的本质 -模拟http请求,获取数据---》入库 -网站 -......
  • 爬虫介绍、requests模块发送get请求、get请求携带参数、携带请求头、携带cookie、发送
    目录今日内容1爬虫介绍2requests模块发送get请求3get请求携带参数4携带请求头5携带cookie6发送post请求7响应Response8获取二进制数据9解析json#期终架构 -后......
  • 爬虫入门--xpatch
    XPath是一门在XML文档中查找信息的语言。XPath使用路径表达式在XML文档中进行导航。XPath包含一个标准函数库。XPath是XSLT中的主要元素。XPath是一个W3C......
  • operator简介
    原理operator是一种kubernetes的扩展形式,利用自定义资源对象(CustomResource)来管理应用和组件,允许用户以Kubernetes的声明式API风格来管理应用及服务。CRD(Cust......
  • 爬虫入门--BS4
    下载pipinstallbs4pipinstalllxml实例化对象本地读取数据frombs4importBeautifulSoupfp=open('./test.html','r',encoding='utf-8')soupLocal=Bea......
  • 快速构造Python爬虫请求,有这个网站就够了!
    引言大家好,我是蜡笔小曦。我们在通过程序向某个网页发起请求时,实际上是模拟浏览器进行http(超文本传输协议)请求,这就要求我们需要按照固定的格式进行代码构造。一般请求......