- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
爬虫本质:模拟方式发送http请求、然后获取数据、再做数据清洗、最后保存到数据库 。
本篇爬虫知识主要包括(不会一次性写完,分好几篇文章写完):
使用python为什么能发送http请求,原因是该模块封装了Python内置模块urllib(起之前用到的urllib,requests模块的api更加便捷,本质就是封装了urllib3) 。
安装模块 。
pip install requests
基本使用 。
import requests
res = requests.get('网址') # 获取数据发送get请求
print(res.text) # text 参数可以打印出页面HTML代码
第一:直接在URL后面英文问号拼参数
res = requests.get('网址')
第二:使用params参数(其实最后效果跟第一种方式一样)
res = requests.get('网址',params={'name':'mire','age':18})
import requests
from urllib.parse import quote, unquote
res = requests.get('网址', params={'name': '阿丽米热', 'age': 18})
print(res.url) # https://www.cnblogs.com/almira998/p/17208674.html?name=%E9%98%BF%E4%B8%BD%E7%B1%B3%E7%83%AD&age=18
"""
我们平时在浏览器上搜关键字,有时候当前网址后面拼搜索关键字但是其已经url编码的具体样子如下
https://www.cnblogs.com/almira998/p/17208674.html?name=%E9%98%BF%E4%B8%BD%E7%B1%B3%E7%83%AD&age=18
怎么样?是不是很眼熟啊,这就是url编码后的效果
"""
'''
那么我们可以研究下如编码和解码
首先要导入模块 from urllib.parse import quote, unquote
quote:代表编码
unquote:代表解码
'''
# 演示一下编码和解码
res = quote('阿丽米热')
print(res) # %E9%98%BF%E4%B8%BD%E7%B1%B3%E7%83%AD
res1 = unquote('%E9%98%BF%E4%B8%BD%E7%B1%B3%E7%83%AD')
print(res1) # 阿丽米热
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'
})
# (反爬虫措施之一)
Connection: keep-alive # 该参数的作用保持链接状态,因为http协议本质是基于TCP协议的(无连接、无状态)
Cookie: 很长的字符串删掉; # 带着cookie就可以信任为登录状态,请求比较容易成功
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.3 # 表示客户端的类型 比如操作系统浏览器类型等等
import requests
# 先用字典的形式包装好
headers = {
'Connection':'keep-alive',
'Cookie':'一堆字符串',
'User-Agent':''
}
res = requests.get('网址', headers=headers) # headers=headers表明携带请求头
print(res.text)
# 发送post请求需要以下参数
"""
1、携带登录信息(用户名、密码、验证码)
2、携带cookie
3、携带请求头headers
"""
import requests
data = {
'username': '',
'password': '',
'captcha': '3456',
'remember': 1,
'ref': '网址',
'act': 'act_login'
}
headers = {
'Connection':'keep-alive',
'Cookie':'一堆字符串',
'User-Agent':''
}
res = requests.get('网址', data=data, headers=headers)
print(res.text)
"""
登录一般都是post请求,需要细带cookie
但是有些网站啊有双token认证 严重影响了爬虫的效率
使用requests.session就不用带cookie
"""
# 使用方法
session = requests.session()
res = session.post('网址', data=data)
res1 = session.get('网址') # 自动保持登录状态,自动携带cookie
import requests
# 在data参数里需要携带用户名密码验证码等基本信息
data = {
'username': '3014885197@qq.com',
'password': 'almira10054X',
'referer': '网址'
}
# 发post请求,参数里面传data参数
session = requests.session()
res = session.post('网址, data=data)
print(res.text)
# Response相应对象的属性和方法
import requests
headers = {
'User-Agent': '一些pc和浏览器配置信息'
}
respone=requests.get('网址',headers=headers)
# respone属性
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) # 响应编码格式
import requests
url = '网址'
res = requests.get(url)
with open('狗.jpg', 'wb') as f:
for line in res.iter_content():
f.write(line)
url = '网址'
res1 = requests.get(url)
with open('视频.mp4', 'wb') as f:
for line in res1.iter_content():
f.write(line)
最后此篇关于爬虫基础知识的文章就讲到这里了,如果你想了解更多关于爬虫基础知识的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在一个网站上工作。 我需要了解我的网站是否获得了来自 Google 或任何其他搜索引擎的抓取工具/机器人的访问 在我的应用程序中,我正在拦截 http 请求。并且需要查明爬虫/机器人是否正在发出 h
我与北京理工大学python爬虫的邂逅 在人生的旅途中,我们时常有机会邂逅一些惊艳的事物,它们仿佛一束亮光照亮了前行的道路。而我,一个平凡的人类,也不例外。回想起那个让我心动的时刻,我想起了与北京理工
从“爬虫”谈起 在这个信息爆炸的时代,互联网上的数据宛如茫茫星海,琳琅满目。但是,我们能否想象到这些数据背后隐藏着多少珍贵的信息呢?有人说,要想获得这些数据,我们需要借助一种神奇的力量——爬虫。 什么
探索未知的领域 曾几何时,我陷入了对互联网世界的好奇之中。作为一个普通的人类,我对于计算机技术的了解可谓是一窍不通。然而,好奇心驱使着我踏上了学习的征途。 奇妙的爬虫 在探索计算机领域的过程中,我翻阅
教室的奇妙之旅 在一个晴朗的早晨,我来到了一所神奇且富有魅力的教室。这里充满了未知的冒险和无限的学习可能。嘿,你没听错,就是那个零基础Python视频教程课程的教室!让我带你一起踏上这趟令人期待的爬虫
零基础学python3 爬虫 嗨,各位小伙伴们!今天要和大家分享一段有关学习Python3爬虫的故事。无论是技术小白还是编程高手,都可以从中获益良多。 1. 邂逅神奇的爬虫世界 就像是迷失在未知之地的
我正在开发一个 Python(3) 程序,在该程序中,我必须使用输入作为表示各种操作的多次迭代列表来返回目录迭代的移动次数,例如: ../ 表示移动到当前文件夹的父文件夹。 ./ 保留在同一文件夹中
我和Python:一段关于爬虫和第三方库的故事 曾经有一个人,他和一门编程语言结下了不解之缘。这门语言就是Python,一个灵活而强大的工具,让他的世界变得多姿多彩。 遇见爬虫:探索未知的世界 某天,
偷心技艺:大众点评TOP10 爬虫 Python 故事发生在一个被互联网包围的城市,充满了各种各样的餐馆、咖啡厅和美食街巷。每天都有无数的食客们纠结于选择哪家餐厅才能获得满足和享受。就在这个时候,我偶
登山寻宝:为什么Python爬虫部分网页源码 人生就像登山寻宝的旅程,充满了未知和挑战。而对于爱好编程的我来说,写一个Python爬虫,探索网络世界也是一种刺激的冒险。今天,我想和大家分享一下为什么要
插班生的悲喜交加 记得那个夏天,我踏入了编程的殿堂,成为了一名程序员。对于一个毫无基础的人来说,这是一次勇敢而激动的尝试。然而,更令我兴奋的是,在我的码农之旅中,我发现了一种神奇的力量——Python
一、 意外的宝藏 当我踏进了编程的大门,发现了那个绚丽多彩的世界时,我仿佛捡到了一个意外的宝藏。在编码的世界里,我像是一个魔术师,用着神奇的符号与逻辑来创造奇迹。然而,随着时间的推移,我渐渐找到了一种
“呜呜呜~” 夏日的阳光穿过微风,洒在我身上,仿佛一片温暖而宁静的海洋。我望着眼前充满希望与挑战的屏幕,满脸的期待和困惑。作为一个刚刚入门的编程初学者,我竭尽全力探索着那座神秘的编程世界,好像是航行在
我的编程之旅 嗨,大家好!我是一个普通的人类,对于编程世界充满着无限的好奇和热情。今天,我想向大家讲述一段关于我的编程经历,特别是在爬虫领域的探索之旅。 1. 踏上未知的征途 就像一只踏上大海的小船,
揭秘神奇的爬虫世界:探寻京东销量数据库 从古至今,人类一直渴望了解世界的各个角落。而对于互联网这个充满未知和神秘的领域来说,我们更是怀着好奇和充满冒险精神的心态去探索。今天,我将带领大家踏上一段激动人
啊!你好呀!很高兴能遇到你,让我向你讲一个关于python爬虫爬取关键词排名的故事。 章节一:奇妙的网络世界 网络就像一片浩瀚的海洋,里面有无数宝藏等待着我们发掘。而当我们学会了使用python这把钥
一次意外的奇遇 在我们生活的世界中,技术如今已经无处不在,无论是大型软件开发还是个人应用,都离不开它的支持。而其中最为神奇的领域之一,就是爬虫技术。想象一下,你有可能仅凭几行代码,就能够在电脑屏幕上将
奇遇之旅 在这个大千世界中,我有幸踏上了一次令人兴奋的冒险之旅。故事的开始,是一个寂静而神秘的夜晚。 迷宫的入口 深夜的城市,街道上弥漫着微弱的灯光,仿佛点缀着无数的星星。我沿着曲径通幽的小巷走着,脚
python 爬虫 自动上传下载 从前有一个热爱编程的小伙子,他喜欢利用自己的技术解决各种实际问题。有一天,他面对一个任务:需要在网络上批量上传和下载文件。这可不是一件轻松的工作,但对于这位小伙子来说
一场奇妙的探险之旅:Python编程语言中的爬虫第三方库 故事从一个寻宝者开始。他身穿一件斑驳的皮衣,手持一柄锈迹斑斑的剑,如同一个当代版的荒野游侠。这位勇士的目标是探索Python编程语言中的神秘领
我是一名优秀的程序员,十分优秀!