日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 状态码转字典文本_python爬虫 处理521状态码

發布時間:2024/4/18 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 状态码转字典文本_python爬虫 处理521状态码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用request.get(url)獲取js代碼

執行函數eval()語句修改為return語句返回cookie值

調用execjs執行js代碼獲得cookie值

將cookie值轉化為字典格式,用request.get(url, headers=headers)方法獲取得到正確的網頁信息

代碼如下:

def getResponse():

"""

獲取response

:return:

"""

response = requests.get(startUrl, headers=headers)

return response

def getJslid(response):

"""

:param response:

:return:

"""

cook = response.cookies

return '; '.join(['='.join(item) for item in cook.items()])

def getClearance(response):

"""

:return:

"""

txt = ''.join(re.findall('', response.text))

func_return = txt.replace('eval', 'return')

print(func_return)

content = execjs.compile(func_return)

eval_func = content.call('x')

name = re.findall(r'var (.*?)=function.*', eval_func)[0]

mode_func = eval_func.replace('while(window._phantom||window.__phantomas){};', ''). \

replace('document.cookie=', 'return').replace('if((function(){try{return !!window.addEventListener;}', ''). \

replace("catch(e){return false;}})()){document.addEventListener('DOMContentLoaded',%s,false)}" % name, ''). \

replace("else{document.attachEvent('onreadystatechange',%s)}" % name, '').replace(

r"setTimeout('location.href=location.pathname+location.search.replace(/[\?|&]captcha-challenge/,\'\')',1500);",

'')

content = execjs.compile(mode_func)

cookies = content.call(name)

# print(cookies)

clearance = cookies.split(';')[0]

return clearance

def structureHeaders(cook, clearance):

"""

構造新的headers

:return:

"""

cookie = {

'cookie': cook + ';' + clearance

}

return dict(headers, **cookie)

總結

以上是生活随笔為你收集整理的python 状态码转字典文本_python爬虫 处理521状态码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。