网站开发二维码生成,wpf可以做网站吗,wordpress 导航图片,网站建设的相应技术网络爬虫—Post请求实战演示POST请求GET请求POST请求和GET请求的区别获取二进制数据爬[百度官网](https://www.baidu.com/)logo实战发送post请求百度翻译实战使用session发送请求模拟登录17k小说网常见问题前言#xff1a; #x1f4dd;#x1f4dd;此专栏文章是专门针对…
网络爬虫—Post请求实战演示POST请求GET请求POST请求和GET请求的区别获取二进制数据爬[百度官网](https://www.baidu.com/)logo实战发送post请求百度翻译实战使用session发送请求模拟登录17k小说网常见问题前言 此专栏文章是专门针对Python零基础爬虫欢迎免费订阅 第一篇文章获得全站热搜第一python领域热搜第一欢迎阅读 欢迎大家一起学习一起成长 悲索之人烈焰加身堕落者不可饶恕。永恒燃烧的羽翼带我脱离凡间的沉沦。 POST请求
Python中的POST请求是HTTP协议中的一种请求方法用于向服务器提交数据。与GET请求不同POST请求将数据封装在请求体中而不是在URL中传递。通常情况下POST请求用于向服务器提交表单数据、上传文件等操作。 示例代码如下
import requestsurl http://example.com/api/data
data {name: John, age: 25}response requests.post(url, datadata)
print(response.text)这个例子中我们向http://example.com/api/data这个URL发送了一个POST请求请求体中包含了name和age两个字段的数据。服务器接收到请求后可以根据数据进行相应的处理并返回响应结果。response.text表示服务器返回的文本内容。
GET请求
Python中的GET请求也是HTTP协议中的一种请求方法用于向服务器请求数据。与POST请求不同GET请求将数据以查询字符串的形式附加在URL后面而不是封装在请求体中。通常情况下GET请求用于向服务器请求某个资源比如获取网页、图片、视频等。 示例代码如下
import requestsurl http://example.com/api/data?id123
response requests.get(url)
print(response.text)这个例子中我们向http://example.com/api/data这个URL发送了一个GET请求查询字符串中包含了id123的参数。服务器接收到请求后根据参数返回相应的数据response.text表示服务器返回的文本内容。
POST请求和GET请求的区别
1post请求更安全 不会作为url的一部分不会被缓存、保存在服务器日志、以及浏览器浏览记录中get请求的是静态资源则会缓存如果是数据则不会缓存 2post请求发送的数据更大 get请求有url长度限制http协议本身不限制请求长度限制是由浏览器和web服务器决定和设置 3post请求能发送更多的数据类型 get请求只能发送ASCII字符 4传参方式不同 get请求参数通过url传递post请求放在request body中传递 5get请求产生一个TCP数据包post请求产生两个TCP数据包 get请求浏览器会把http header和data一并发送出去服务器响应200返回数据post请求浏览器先发送header服务器响应100 continue浏览器再发送data服务器响应200 返回数据 获取二进制数据
爬百度官网logo实战
快速找到图片链接位置 右键空白处 -- 检查 -- 鼠标附魔 -- 点击图片找到对应的链接 需要确认和检查图片链接是否完整 确认目标 右键空白处 -- 检查 -- 鼠标附魔 -- 点击图片找到对应的链接 点开链接后里面有三条链接到底哪一个是我们需要的我们需要一个一个点开看。 接着就是敲代码把照片获取到本地。 代码如下
import requests# 确认数据的链接
url https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
# headers 90%情况下是不需要的特别是图片 (当获取不到图片数据的时候才加上请求头数据)# print(image.content)
# 获取响应对象的进制数据
data requests.get(url)f open(百度logo.png, wb) # 把数据保存到文件中
f.write(data.content)
f.close() 导入requests库用于发送HTTP请求和获取响应数据。 定义一个URL变量表示要下载的图片的链接。 使用requests.get()方法发送GET请求获取图片的二进制数据。 打开一个文件这里是百度logo.png使用wb模式打开表示以二进制写入模式打开文件。 将获取到的二进制数据写入文件中。 关闭文件。 最终运行这段代码会在当前目录下生成一个名为百度logo.png的图片文件内容为从指定URL下载的图片。 发送post请求
百度翻译实战 1.确认爬虫的流程获取数据的时候根据流程操作 找数据先到网页源代码里面找数据 如果数据不在网页源代码 数据在哪里 如何快速找到数据并确认它 三种方法 筛选 刷新 搜索 筛选
刷新
搜索 找到数据了
通过三种方式找到数据接下来写代码拿出我们想要的数据
import requestsurl https://fanyi.baidu.com/v2transapi?fromzhtoenheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36,Cookie: BIDUPSID12D9950A2673951B2629A85BC6A1EA8E; PSTM1677676852; BAIDUID12D9950A2673951B0F0D1B4587FF5EA1:FG1; BDUSS_BFESSJXTmpvVEtVSWxtRTVwY3dJbXA1b2h5Vk5xeVQzLTlFS25tblUyQWl3Vm9uRHBrSUFBQUFBJCQAAAAAAAAAAAEAAADA4O~RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgPE2RoDxNkdD; BDORZFFFB88E999055A3F8A630C64834BD6D0; APPGUIDE_10_0_21; REALTIME_TRANS_SWITCH1; FANYI_WORD_SWITCH1; HISTORY_SWITCH1; SOUND_SPD_SWITCH1; SOUND_PREFER_SWITCH1; BA_HECTOR25202k0g2ga524210k2ha08k1i1d89t1m; ZFYrLRjwO2KKciLyDaiAWkUkVrYFXcodJI9dLOc263KUTI:C; BAIDUID_BFESS12D9950A2673951B0F0D1B4587FF5EA1:FG1; BDRCVFR[bPTzwF-RsLY]mk3SLVN4HKm; H_PS_PSSID; PSINO5; delPer0; BCLID11200678177449842076; BCLID_BFESS11200678177449842076; BDSFRCVIDWOkOJexroG07VWbfQIXxU9c9ruweG7bTDYrEOwXPsp3LGJLVFe3JEG0Pts1-dEu-S2OOogKKQgOTHRkF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; BDSFRCVID_BFESSWOkOJexroG07VWbfQIXxU9c9ruweG7bTDYrEOwXPsp3LGJLVFe3JEG0Pts1-dEu-S2OOogKKQgOTHRkF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SFtRAOoC_-tDvDqTrP-trf5DCShUFsLMRWB2Q-XPoO3KtbSx3PblQzWbkAef-8bJQf5mkf3fbgy4op8P3y0bb2DUA1y4vp0tLeWeTxoUJ2-KDVeh5Gqq-KXU4ebPRiQ4b9QgbNBhQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0HPonHj_KjToL3q; H_BDCLCKID_SF_BFESStRAOoC_-tDvDqTrP-trf5DCShUFsLMRWB2Q-XPoO3KtbSx3PblQzWbkAef-8bJQf5mkf3fbgy4op8P3y0bb2DUA1y4vp0tLeWeTxoUJ2-KDVeh5Gqq-KXU4ebPRiQ4b9QgbNBhQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0HPonHj_KjToL3q; Hm_lvt_64ecd82404c51e03dc91cb9e8c0255741679039134,1679143234,1679204636,1679231203; Hm_lpvt_64ecd82404c51e03dc91cb9e8c0255741679231203; ab_sr1.0.1_MzRlMjk2ZGYwYzRhNzk5MGY1MjA2NDc5OWFkY2MwYjM0ZTQxOGYyYjczNWQyOTE0MWJhYTkxNmJmZWFiYTU4ZmRjZjcxZjhmZDNlZmVkYWZhMmY4MmQwYjYyYWE5M2RhYjIzMjYyNTMzNzBmYjcyMzMyNTVkMjRiMTBkZjI3MmE2YjgzNDU4YmY4Mjc5ZWRhODY1NzkxMzc5MjBiMTBhYmE0NGE0NTY2MTY5MzI2ODQ1MzQ1ZGJhYTY4YTMzOGZj,Acs-Token: 1679231203273_1679231215801_TZnmUVeLuVlVCXU675lmFL7KXTqZWTpNkvwrKj1/azwt2t9OYJni7f/HuDsQoPprquOTaEto81VaJEnjHeY/FjtVICpqxnDHWZZbIWO5NltIttKh4Bg74eYS7b86eVzcvVgkIDn9kR9V13wNYJyyapcvo2SeSLf1OWzc9Y0Byn3v/R0hUvgWoAd0PsAxSkwy4kv4DaDQFmy1SwM4P9tMy010GUgQspRcT3FBQ0bFWL67oAwYBkbqrJ2I6G0i4wh67uBxO73nnI3M1dH4MZml16j0bU7rzdGDf2gI6HIM2vmwuAlARmYZJvPNmiaDgnaqbImC8kfXZGptQuTMp/8MK13wJULF//k6HxoM
}data {from: zh,to: en,query: 西瓜,transtype: translang,simple_means_flag: 3,sign: 550632.820697,token: 89c89225cdb36e24dea4bcf09eed1996,domain: common
}
rest requests.post(url, headersheaders, datadata)
trans_dict rest.json()
print(trans_dict[trans_result][data][0][dst])
print(trans_dict[trans_result][data][0][src])拿到我们的数据了
使用session发送请求
模拟登录17k小说网 先了解本次实战目标 我们的目标就是通过模拟登录然后获取账户个人主页的内容 接下来开始找数据账号密码方便我们登录个人主页 找到数据后我们开始写代码
import requests
from requests import Sessionsession requests.Session()
url https://passport.17k.com/ck/user/loginheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36,
}data {loginName: 以山河作礼,password: ********
}# session对象登录记录登录的状态
html session.post(urlurl, headersheaders, datadata)
print(html.json()) 运行代码看看我们是否登录成功。 看到我们的登录昵称说明我们登录成功了接下来我们通过代码进入个人主页 import requests
from requests import Sessionsession requests.Session()
url https://passport.17k.com/ck/user/loginheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36,
}data {loginName: 以山河作礼,password: ******
}# session对象登录记录登录的状态
html session.post(urlurl, headersheaders, datadata)
print(html.json())# session对象的登录的状态去请求
url_main https://user.17k.com/www/
html session.get(url_main, headersheaders)
html.encoding utf-8
print(html.text)运行结果 我们得到了个人主页的html页面代码在里面我们可以看到最近阅读和最近收藏等说明我们本次成功的获取了想要的数据。 常见问题
获取不到需要的数据 增加cookie等其他比较重要的请求头信息 获取的数据是乱码状态 写Accept-Encoding 容易乱码 请求头里面不要写 html requests.get(url,headershead_data)html.encoding utf-8 # 解决数据乱码今日学习笔记到此结束感谢你的阅读如有疑问或者问题欢迎私信我会帮忙解决如果没有回那我就是在教室上课抱歉。