前言
本文主要介绍一些网络的请求方式和cookie池的使用。
一、请求方式
- get:直接向我们的服务端请求资源响应(数据)
- post:首先携带数据给服务器,然后再得到提交数据之后的资源响应
区别:如果用get进行传参的时候,不能很好的保护数据,post请求优势:安全,载体方便。
二、cookie
在python中,cookie是一种用于在客户端和服务器之间传递数据的方式。当用户访问一个网站时,服务器可以通过设置cookie将一些数据存储在用户的浏览器中。浏览器将在之后的每次请求中自动将这些cookie信息发送给服务器,以便服务器可以识别和跟踪用户。cookie通常用于存储用户的会话信息、个人偏好设置、购物车内容等。在python中,可以使用标准库中的http.cookiejar模块来处理和管理cookie。
使用浏览器访问会自动带上cookie,但是使用爬虫进行访问的时候不会自动带上Cookie
cookie——会话记录,记录着你的客户端和服务器进行交互的信息
当我们填入了一次用户名和密码的时候,都会被记录在cookie中,当我们第二次登录网站的时候,一般不用再次输入用户名和密码
爬虫程序中并没有带有登录成功信息
但是如果我们的爬虫程序自带上cookie,那么就会登录成功
1.利用cookie抓取登录之后的页面
代码如下(示例):
import requests
if __name__ == '__main__':
url_ = 'https://music.163.com/playlist?id=7681354956'
# 第一种添加cookie的方法,直接以键值对的方法放到headers中
headers_ = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1',
'Cookie': 'NMTID=00OwpRYSf12NKchDUdBtcPMgv2r6AwAAAGOOD4B-A; _iuqxldmzr_=32; _ntes_nnid=ec4d8d359b89ce00d6be8cf6ae4dd673,1710340572354; _ntes_nuid=ec4d8d359b89ce00d6be8cf6ae4dd673; WM_NI=zp6RS0J3y9jAPH1FS%2Bp5641mdtpnRxeQVuzDRMiqcB%2BXdohgNvJRsrWwi%2FZnF1zy%2BKx1JD7xwClUHJxTXCigZ%2FZLFrKvVK%2FoctOJmvLIOW%2FS2OPKzVNDc9DZ0ISE9dL2Njk%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6ee8bb260f3878782c44191eb8eb2d15a879e9e87d12196af8ab5aa6897baa5b4ef2af0fea7c3b92abab0fab3d23c8aedb7dae94b9498ffa7d221b4ebfad5b467a8acc08fd174a78f9a96f9509293a792e24ae988ac90eb6d8eaa86b3f27a95a9a7d0d96686efb69aaa41bcef86a5b674b59da4b6cb42bc8c98a4ec6d9af196adc57a89aa9aacae65a1ac81abf07e909781b8ae59f291a0acf95e8e9caddac752f4979da6bc7090ee828bea37e2a3; WM_TID=dDV8nP1ipzNFUVQVEELV6AqQTvgFe1Dg; WEVNSM=1.0.0; WNMCID=jdpgzp.1710340575038.01.0; sDeviceId=YD-11c%2FZKMi3DdERhRAFRKR%2BA6EX7wH6p%2FT; ntes_utid=tid._.PBKv5sidqrRBRkQFBUOEuR6UGqgDqn6e._.0; __snaker__id=gKoykPYgndjs3SGF; __csrf=c378773465059d3d800a0a9a7211fd54; MUSIC_U=0064E14DE072303CF55401A54E23018AE7B0A4883FD84B7846E08CF581B8ECD40EBA60C073B2738D2804EA5851265AA40790F77A6B526196C794B767BEA7F074FE820410BBA767981212A62E9322399FC8045E9AC3A8BBFC6EB761E2E378EE3007A02713774865E1BBF19CE6E809E3A6C5E470641A5360DA7D11D226BE984CE8C6C81F8B63313A4DB32B9B33796492DF59EA840FBBB5C17ADE4A150EB8C5366FD149C283D8A8B65D5816175F820582F5DDD0A56AD734B2BD05C885271BEBD11F7CE3B89554DAED4F6270004A6EEBBD910FE359D1B7DB96CAE7E0008982EB4636B3558F3E0B43DC0AB38A7DE11AC7BB7B5F94DDCE4674BCE1E3E1BCBF03B708566CFF09C49B63A31992A63541CE5A70CC1BC252D260E34DE4CF87465B556431FEA3407C30DF7DCF3A978B70531BC0E5628A0E0E8D6027DBCF5CEC150EC0125A41FFAAC4BB33125D53B48549900B7BC4F54C0C45F7A914B26E455AD84FD372ECE2C686446D090084DAB823500CC62C3CF2DC; __remember_me=true; ntes_kaola_ad=1; gdxidpyhxdE=5NEkDSt9y%5CPhoY0NhyLc6Xap29z5Jo7cWsz%2ByKUlCY%2FVcxc2xau%2BTYrspQ%5CZttSkBO1xvk7UGcMyxRK0%5CojiKH0X97Z2Repfrt499hWifbnQ%2Bnffh0AqMwjQKe8VG8CXEW7zRztGak03tPmcs2B3CLUOc04q61%2FtApLvRMW%2F6q7CpykI%3A1710396660185; JSESSIONID-WYYY=J09lF1o%2FDjiB3EZgvTpNf6cyOvAftbib8%2BvU2Ebd7IXSnOrSfX0vUbKDS9dunZHtVk7RkXG%2FF%2FxoTaFfOVBw5MGCeC%5CdHG9XJk9JYgagrcyPUJ2YRP6yfyA4ybDK3noqFmW8AhAaq4btuWF3kc1tVtZ7c%5CUOTUKzOB2ATOYXh272HMMQ%3A1710405051510'
}
response_ = requests.get(url_, headers=headers_)
str_data = response_.content.decode('utf-8') # 结果:用户登录信息错误
print(str_data)
2.单独构建cookie
代码如下(示例):
import requests
# 2.第二种添加Cookie的方式,单独构造一个字典
if __name__ == '__main__':
url_ = 'https://i.taobao.com/my_taobao.htm?nekot=dGIwMTMwODQyMjA=1710407843402'
# 第一种添加cookie的方法,直接以键值对的方法放到headers中
headers_ = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1',
}
cookie_ = {
'Cookie': 'cna=WtJ1Hiz3zQgCAToTS93Wd6rV; mtop_partitioned_detect=1; _m_h5_tk=e21bbb1e1ee5e8c43aa0ffeadb0943a7_1710415508138; _m_h5_tk_enc=312f5543445bf20cd5a4aa43f612d213; cookie2=10999d609faa5dc396cf9245c3949de2; t=6f8d010f2b0c1798cd49698dd4c3517a; _tb_token_=531efd7333639; _samesite_flag_=true; xlly_s=1; 3PcFlag=1710407803403; sgcookie=E100pT8K81Xbb80NAqkcuj6JnaLTiAmzr4IVtVChPfruYmRUtreQVNU9uYAUFYmiXea2sV%2B9yPTwZ0NNqpdFnWUQRYV1t1QHTzjHffOlNeOxn1o%3D; uc3=nk2=F5RFgY77uC2X5yY%3D&id2=UUphzOSGTb3J19A0%2FA%3D%3D&vt3=F8dD3eneSq1kPt9CA6o%3D&lg2=VFC%2FuZ9ayeYq2g%3D%3D; csg=0f80cad4; lgc=tb013084220; cancelledSubSites=empty; dnk=tb013084220; skt=387a43dac39ffac3; existShop=MTcxMDQwNzg0Mw%3D%3D; uc4=nk4=0%40FY4O6GYbVmEK%2BxTk%2BMWKuH9o5%2BVXQQ%3D%3D&id4=0%40U2grF89BQ3BkN4NdqY1Gnm58wfOaMDjW; tracknick=tb013084220; _cc_=V32FPkk%2Fhw%3D%3D; uc1=cookie14=UoYfobte0jHr3Q%3D%3D&cookie16=WqG3DMC9UpAPBHGz5QBErFxlCA%3D%3D&pas=0&existShop=false&cookie21=V32FPkk%2FgPzW; tfstk=eiDeXVqTAppE_gIjT52zgLAhVK2LU-LX4Ya7q0muAy4nO0quUV0WvyikJ4kzSVSBJzOKz7uSW707PDsK6qicdvOLFTyLe8YXlK9bADe8ESIhOpnpSe8aIE9XhDA3v8iMlHFjDXSnok1pPMPyom4iC0wiHUX0bPWl3iEUtk9Y7TXmQkoaoDAOETDaYWSzTaEMO-H-TafztlEalh-a41d08xYxPvfRwWhTbrtpv_C8tlEalh-Nw_FLBlzXvHC..; isg=BBAQzdLPQWEGQB15Kdvnd75O4V5i2fQjyEHEMQrhwms-RbDvsum_s39_HQ2llaz7'
}
response_ = requests.get(url_,headers=headers_,cookies=cookie_)
str_data = response_.text
print(str_data)
3.利用post请求
if __name__ == '__main__':
url_ = 'https://login.taobao.com/newlogin/login.do?appName=taobao&fromSite=0&_bx-v=2.5.3'
headers_ = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1',
}
# post模拟登录,就不需要cookie
# 携带数据(form表单里面携带)
form_data = {
"loginId": "xxxxxxx", # 账号名
"password2": "xxxxxxx", # 密码
"keepLogin": "false",
"isIframe": "false",
"banThirdPartyCookie": "false",
"documentReferer": "https://www.taobao.com/",
"defaultView": "qrcode",
"ua": "140#FTTDwHirzzPsRQo2L5LTA6SogFGwDCp8pC3/zf9x65lLsdn+GY7/qo0nuemmjXKic8+QB8C3tsgw7lHfmyOjWoHM6rbfT6hqzzn7qL+qvLMzzZFJ9jnqlbrz2DD3V3gqzJZnOgbhaHSrxPrbL8/qlbr24DP+V6QexFnp2X8+lbfoztrivR5Eqb3c2MaK4u7LwZ3jhjmijDapVChEFvp4pN4EgALgZl9Uz/9hrPTOPDthorF48Hrhvvp6UJCpEXykJrMI66MGiRmoFPJyc5KQIyP+eOhILRW20hIkyIPhUKhmfVjebyqVvjecVec/PHQr6Dof3SzawhWLfH2FcW2XSbLhlzOoENwtY9GZcmr4oBofwTH68+LiWwf17x5Fem75nHWgqzHniM60+9A5SBUVgzQonXzVvDcHuNkniJZtvELUtuFjNocPu2OlBtBWOXFyq5LFhusCMVVA/3qHelXOFtxn9UrOSLl7e5xcx+VFr2MhFNAUc5tiU7ULgjlZSc6PCFNZN3BSmBFLN4/muvW0zlRlRArAIOacXmtKU5+rKcbg38HyvxkIA51iKsT8qBPN9JKYk3dRIYMHpM2nQhXi481txgLT463kEq+yRSu9dMRM/IrvlXY/5iHbeAbg4uEL9GKr6IHThsvYHl4WfZRY7+NimyRZM+2tKAmHJHPGpcGv8nvZ9UswP8bEZJ+bT+Z7HCigKZlvTWg8cGX46TYg33aprOUXRavWV2cTLv8MolaP92DUBsbdM6i7VTsofM1BUcbMvyY/twByPrQ0lrszoNGI5APIOcqviklawRbLEp7G1Q6D4BfoVhMJZkR7oKz66uliUVBCYa2kTeN0uJCQyGemDxlgaMTOwV6I5xxW763ZjS3EoPRV8OjWdbb0j4sgoDdGn2gWBSIi+uAQ+Mq2KdoeJqu3RE+a+431X9bo1eFQbgZW9wQqSDyjuZB4RwcrkfGJ21PmsjyQ9jww520w4Jqfo2fUCYIljKaKFI0AE0UUbFqRTXTVhXIbAOi0krggc/U+Zrtzk24kSccp0eXKDfNJ1tblcj2ZkzSNlgMWgcHIe/bezq2c4djCV6UOCuEb4ZzKd2ThbDHajmUPpQwyYIQDrPjw9AmF1DDZz2y6IZA5uQ62eubd4l128P/ZjowjdwcxKdqTwvu=",
"umidGetStatusVal": "255",
"screenPixel": "1536x864",
"navlanguage": "zh-CN",
"navUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
"navPlatform": "Win32",
"appName": "taobao",
"appEntrance": "taobao_pc",
"_csrf_token": "xKTQpFxcdQ02XVQqR6Lh61",
"umidToken": "227d6a5165e028974cb27fc1e976df231dbc2cb3",
"hsiz": "10999d609faa5dc396cf9245c3949de2",
"bizParams": "renderRefer=https%3A%2F%2Fwww.taobao.com%2F",
"mainPage": "true",
"style": "default",
"appkey": "00000000",
"from": "tbTop",
"isMobile": "false",
"lang": "zh_CN",
"returnUrl": "https://www.taobao.com/",
"fromSite": "0",
"umidTag": "SERVER",
"weiBoMpBridge": "",
"deviceId": "",
"pageTraceId": "21080c4f17104054323202965d1435",
"bx-ua": "227!SSiSphi/H3ksE9DqvSf6bDudZ P4JL9j4lPPOibZCSQWntR3SCcTpsrUoggE9O3aPEMwCSPE8mJMtS3Oe8xcJPWY6 o1wHRenHEueEjypCASntkk VnL3SIb TfrYvCnX77XsvH7UYb4o4pQwonAXHA2qeXmzMinHEVOmv3ehuofy2Jikn13DmWqmgHmppinHPkqfvHaRbgh70Ke8lnODlzqKiHDppinXPPOfHhuUT2RbR8mxnD3Xlz6mVXXpWp6fE4O J2a7mWnok8rJnI3DXWFmfXDpMmnHPB5kvHaRKWnoR8mxnIfXlzFmwHiZMqjHPPOJnXOEHWnoR8mpSx3G9x5kfCy0vgT3V87Z3d/FeviKF6gJzDznPw5k9iy3WlzA hgVSAJtXN5Q9igsrDcRCHgG3pBIVHHcNuMj3RdFjZ13vysqO20 35JnQ/KhPl/2PtJlS9Eix/oVgW5N0VgaLNFjBobNVdE7ap4WWtdULLAPGUpS5etY5W0jx4i3cUeAEsUIif/j7ohS2j2qNZbDJUVrN69mixpnv/ SBAu48FMRl97NOXtw/iQP N2UW2fOtaUCvcDzfba0OM67cepmYaE/0fjSOp3a06643h0QgDwtpd3CCmsD5fmiuqwutppTvypm1VMeuGm0vRv22Ii0Ibf NzCydOH0t7O0Uql7HvR7Dx4z2AIwW8wDWPhZ WdgX24KUTQq3j3nZ6bh0jfKVk104pxmIGaOK4W6J ygATWhzNNECDDUJJo7vIfCTG5R6/Ol1wRPkxFRqaRMBa8b6GYM0mRTM oKryDB/Y5N/HuF11FqvZU8ZsR3qTRrbca5U0QkYnCo9g9YmrtuJn5kusebaIvPHCewugWYgHChFDEYjSt3JrhqBrNjDuH/BRjCCGLER0KW8vRKIPyk2dYtECy9kKW4hGJrBLDHTKotAKz/VOETeD3oLgUUAxg4KLMDJc4F7qHZyUG0wfcmrEsquN5SBNwgdmvuCpkv/QGzUEJLAKEAp0QopdYI4QySXE4DqlLgty4l/EmeC1TVi/DZjBN6MHb90IiLYOvq/X//tFMsuvkd5AMtsiteK6YS2EdBUEg67019nNO3wothMIaKw2Rqdhv9oE0KKIo6wxbO1o1HfgQD4bWBJLtr36XPc72eC99IUheUF1UrVa81aTv7vnmcRIMxBSaDhYQycaD9tQbC6ofu5wbAgtfml i5XzZHVHGpMm14MCY5jm9f7cFU0sVd6tUxZVsjVld4CmnhiUpl7/NFVJuGMiRe4c93rrbeDTd60fFWc7FjihNPMIEnLuiXovERtVsXQ0G3WGyC1ytqpd0Fxy8KYt MWYjSTH2gw5qlMgspB9q38J/j9rxIfX62tiU4wJljWlYl107RI Tuvf42a5 V/7dRlBfVuQEROi0PlXmsH1ei==",
"bx-umidtoken": "G7AE741F7C7764EE0F8BCF862EF47DC62234E5E41F8EFA88EE8"
}
response_ = requests.post(url_, headers=headers_, data=form_data)
str_data = response_.text
print(str_data)
使用post请求模拟登录的好处:
cookie也能够拿到登录过后的数据,每次都要去现拿,并且存在过期的问题,但是如果使用post的话就不会存在过期的问题
三、session
问题:
- 使用登录过后的cookie 直接使用get 但是是有有效期的
- 使用post模拟登录 登录一次
但是如果要抓取10次的话 太过麻烦 而且容易被检测到是非正常用户 从而被封禁账号
解决办法
首先用post请求模拟登录,我们就可以拿到最新的cookie,然后再拿着这个cookie用get请求不同的页面,而session可以规避掉这两种方法的弊端
import requests
if __name__ == '__main__':
login_url = 'https://login.taobao.com/newlogin/login.do?appName=taobao&fromSite=0&_bx-v=2.5.3'
headers_ = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1',
}
form_data = {
"loginId": "xxxxxxxxx",
"password2": "xxxxxxxxxx",
"keepLogin": "false",
"isIframe": "false",
"banThirdPartyCookie": "false",
"documentReferer": "https://www.taobao.com/",
"defaultView": "qrcode",
"ua": "140#FTTDwHirzzPsRQo2L5LTA6SogFGwDCp8pC3/zf9x65lLsdn+GY7/qo0nuemmjXKic8+QB8C3tsgw7lHfmyOjWoHM6rbfT6hqzzn7qL+qvLMzzZFJ9jnqlbrz2DD3V3gqzJZnOgbhaHSrxPrbL8/qlbr24DP+V6QexFnp2X8+lbfoztrivR5Eqb3c2MaK4u7LwZ3jhjmijDapVChEFvp4pN4EgALgZl9Uz/9hrPTOPDthorF48Hrhvvp6UJCpEXykJrMI66MGiRmoFPJyc5KQIyP+eOhILRW20hIkyIPhUKhmfVjebyqVvjecVec/PHQr6Dof3SzawhWLfH2FcW2XSbLhlzOoENwtY9GZcmr4oBofwTH68+LiWwf17x5Fem75nHWgqzHniM60+9A5SBUVgzQonXzVvDcHuNkniJZtvELUtuFjNocPu2OlBtBWOXFyq5LFhusCMVVA/3qHelXOFtxn9UrOSLl7e5xcx+VFr2MhFNAUc5tiU7ULgjlZSc6PCFNZN3BSmBFLN4/muvW0zlRlRArAIOacXmtKU5+rKcbg38HyvxkIA51iKsT8qBPN9JKYk3dRIYMHpM2nQhXi481txgLT463kEq+yRSu9dMRM/IrvlXY/5iHbeAbg4uEL9GKr6IHThsvYHl4WfZRY7+NimyRZM+2tKAmHJHPGpcGv8nvZ9UswP8bEZJ+bT+Z7HCigKZlvTWg8cGX46TYg33aprOUXRavWV2cTLv8MolaP92DUBsbdM6i7VTsofM1BUcbMvyY/twByPrQ0lrszoNGI5APIOcqviklawRbLEp7G1Q6D4BfoVhMJZkR7oKz66uliUVBCYa2kTeN0uJCQyGemDxlgaMTOwV6I5xxW763ZjS3EoPRV8OjWdbb0j4sgoDdGn2gWBSIi+uAQ+Mq2KdoeJqu3RE+a+431X9bo1eFQbgZW9wQqSDyjuZB4RwcrkfGJ21PmsjyQ9jww520w4Jqfo2fUCYIljKaKFI0AE0UUbFqRTXTVhXIbAOi0krggc/U+Zrtzk24kSccp0eXKDfNJ1tblcj2ZkzSNlgMWgcHIe/bezq2c4djCV6UOCuEb4ZzKd2ThbDHajmUPpQwyYIQDrPjw9AmF1DDZz2y6IZA5uQ62eubd4l128P/ZjowjdwcxKdqTwvu=",
"umidGetStatusVal": "255",
"screenPixel": "1536x864",
"navlanguage": "zh-CN",
"navUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
"navPlatform": "Win32",
"appName": "taobao",
"appEntrance": "taobao_pc",
"_csrf_token": "xKTQpFxcdQ02XVQqR6Lh61",
"umidToken": "227d6a5165e028974cb27fc1e976df231dbc2cb3",
"hsiz": "10999d609faa5dc396cf9245c3949de2",
"bizParams": "renderRefer=https%3A%2F%2Fwww.taobao.com%2F",
"mainPage": "true",
"style": "default",
"appkey": "00000000",
"from": "tbTop",
"isMobile": "false",
"lang": "zh_CN",
"returnUrl": "https://www.taobao.com/",
"fromSite": "0",
"umidTag": "SERVER",
"weiBoMpBridge": "",
"deviceId": "",
"pageTraceId": "21080c4f17104054323202965d1435",
"bx-ua": "227!SSiSphi/H3ksE9DqvSf6bDudZ P4JL9j4lPPOibZCSQWntR3SCcTpsrUoggE9O3aPEMwCSPE8mJMtS3Oe8xcJPWY6 o1wHRenHEueEjypCASntkk VnL3SIb TfrYvCnX77XsvH7UYb4o4pQwonAXHA2qeXmzMinHEVOmv3ehuofy2Jikn13DmWqmgHmppinHPkqfvHaRbgh70Ke8lnODlzqKiHDppinXPPOfHhuUT2RbR8mxnD3Xlz6mVXXpWp6fE4O J2a7mWnok8rJnI3DXWFmfXDpMmnHPB5kvHaRKWnoR8mxnIfXlzFmwHiZMqjHPPOJnXOEHWnoR8mpSx3G9x5kfCy0vgT3V87Z3d/FeviKF6gJzDznPw5k9iy3WlzA hgVSAJtXN5Q9igsrDcRCHgG3pBIVHHcNuMj3RdFjZ13vysqO20 35JnQ/KhPl/2PtJlS9Eix/oVgW5N0VgaLNFjBobNVdE7ap4WWtdULLAPGUpS5etY5W0jx4i3cUeAEsUIif/j7ohS2j2qNZbDJUVrN69mixpnv/ SBAu48FMRl97NOXtw/iQP N2UW2fOtaUCvcDzfba0OM67cepmYaE/0fjSOp3a06643h0QgDwtpd3CCmsD5fmiuqwutppTvypm1VMeuGm0vRv22Ii0Ibf NzCydOH0t7O0Uql7HvR7Dx4z2AIwW8wDWPhZ WdgX24KUTQq3j3nZ6bh0jfKVk104pxmIGaOK4W6J ygATWhzNNECDDUJJo7vIfCTG5R6/Ol1wRPkxFRqaRMBa8b6GYM0mRTM oKryDB/Y5N/HuF11FqvZU8ZsR3qTRrbca5U0QkYnCo9g9YmrtuJn5kusebaIvPHCewugWYgHChFDEYjSt3JrhqBrNjDuH/BRjCCGLER0KW8vRKIPyk2dYtECy9kKW4hGJrBLDHTKotAKz/VOETeD3oLgUUAxg4KLMDJc4F7qHZyUG0wfcmrEsquN5SBNwgdmvuCpkv/QGzUEJLAKEAp0QopdYI4QySXE4DqlLgty4l/EmeC1TVi/DZjBN6MHb90IiLYOvq/X//tFMsuvkd5AMtsiteK6YS2EdBUEg67019nNO3wothMIaKw2Rqdhv9oE0KKIo6wxbO1o1HfgQD4bWBJLtr36XPc72eC99IUheUF1UrVa81aTv7vnmcRIMxBSaDhYQycaD9tQbC6ofu5wbAgtfml i5XzZHVHGpMm14MCY5jm9f7cFU0sVd6tUxZVsjVld4CmnhiUpl7/NFVJuGMiRe4c93rrbeDTd60fFWc7FjihNPMIEnLuiXovERtVsXQ0G3WGyC1ytqpd0Fxy8KYt MWYjSTH2gw5qlMgspB9q38J/j9rxIfX62tiU4wJljWlYl107RI Tuvf42a5 V/7dRlBfVuQEROi0PlXmsH1ei==",
"bx-umidtoken": "G7AE741F7C7764EE0F8BCF862EF47DC62234E5E41F8EFA88EE8"
}
# 如果想要自动携带登录过后的cookie,那么就需要封装一个新的发送请求的对象
session_ = requests.session()
# 这一步的目的就是为了让session_携带上最新的cookie
session_.post(login_url,headers=headers_,data=form_data) # 这里可以不接收响应对象
cart_url = 'https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.3htGcw&nekot=1470211439694'
response_ = session_.get(cart_url,headers=headers_)
str_data = response_.text
print(str_data)
四、cookie池
在Python中,Cookie池是一种用于管理和维护多个Cookie的机制。通常情况下,使用Cookie池可以实现以下功能:
-
自动管理和更新Cookie:Cookie池可以自动管理和更新多个Cookie,确保每个请求都使用有效的Cookie。
-
防止被封禁:通过使用多个Cookie,可以避免频繁请求而导致被服务器封禁的情况。
-
多账号登录:使用Cookie池可以方便地实现多个账号的登录和切换。
首先,需要创建一个Cookie池,然后在发送请求时,从Cookie池中选择一个合适的Cookie,设置到请求头中。如果当前使用的Cookie已经失效,可以从Cookie池中选择一个新的有效Cookie。
import random
import requests
cookies = [
{'name': 'cookie1', 'value': 'value1'},
{'name': 'cookie2', 'value': 'value2'},
{'name': 'cookie3', 'value': 'value3'},
# ...
]
def get_random_cookie():
return random.choice(cookies)
def send_request():
url = 'http://example.com'
headers = {
'Cookie': f"{get_random_cookie()['name']}={get_random_cookie()['value']}",
}
response = requests.get(url, headers=headers)
# 处理响应
send_request()
那么关键的问题来了,我们如何获取cookie呢?
博主提供以下的两种方法:(其实没什么好方法)
1.发送周围的人帮你注册
2.花动金钱的力量(某网站上购买)
总结
本文所讲的内容对后面的学习用处比较大,希望可以多花时间进行阅读学习!
过去的价值不代表未来的地位。