用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状态码相关推荐

  1. html状态码521,python爬虫 处理521状态码

    在抓取数据的时候往往可以通过状态码来判断返回结果,今天在抓取数据的时候碰到了以前没有碰到过得状态码521,输出它的爬取内容(text),发现是一些js代码.一起探讨一下如何处理521状态码. 用cha ...

  2. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

  3. python爬取新闻后提炼_Python爬虫开发的3大难题,别上了贼船才发现,水有多深...

    写爬虫,是一个非常考验综合实力的活儿.有时候,你轻而易举地就抓取到了想要的数据:有时候,你费尽心思却毫无所获. 好多Python爬虫的入门教程都是一行代码就把你骗上了"贼船",等上 ...

  4. python自动发邮件富文本_Python自动化测试发送邮件太麻烦?!一起聊一聊 Python 发送邮件的3种方式...

    1. 前言 发送邮件,我们在平时工作中经用到,做为测试人员,在自动化测试中用的也比较多,需要发送邮件给某领导 SMTP是Python默认的邮件模块,可以发送纯文本.富文本.HTML 等格式的邮件 今天 ...

  5. python爬取网页数据流程_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  6. python 读取特定一段文本_python提取文本内容 python读取文本每行指定内容

    用"python"怎么提取文件里的指定内容?原来这些年,他痊愈的只是外表,有一种伤,它深入骨髓,在人看不见的地方肆虐. python读取文件内容的方法: 一.最方便的方法是一次性读 ...

  7. python批量访问网页保存结果_Python爬虫(批量爬取某网站图片)

    1.需要用到的库有: Requests re os time 如果没有安装的请自己安装一下,pycharm中打开终端输入命令就可以安装 2.IDE : pycharm 3.python 版本: 3.8 ...

  8. python爬取微博文本_Python爬虫爬取新浪微博内容示例【基于代理IP】

    本文实例讲述了Python爬虫爬取新浪微博内容.分享给大家供大家参考,具体如下: 用Python编写爬虫,爬取微博大V的微博内容,本文以女神的微博为例(爬新浪m站:https://m.weibo.cn ...

  9. python爬虫数据存储文本_Python爬虫开发系列之五》数据存储为TXT、JSON格式

    在上一篇中我们介绍了Beautiful Soup解析库的使用方法,用解析出数据之后,接下来就是存储数据的问题了.数据保存的方式多种多样,最简单的形式是直接保存成文本文件,比如txt/json/csv. ...

最新文章

  1. 029_CSS水平对齐
  2. perl语言之列表与数组
  3. CCF 201403-2 窗口
  4. Python -- abc module
  5. vs2019编译c语言提示有病毒,关于VS2019代码编译的问题(C++)
  6. 跨链项目Cosmos主网升级提案已开启投票 目前投票率为19.10%
  7. 采用SVM和神经网络的车牌识别(流程图及详细解释)
  8. 计算机主板电池,如何更换计算机主板电池
  9. STC学习:按键消抖计数
  10. java非静态方法调用静态方法_java - 无法对非静态方法进行静态引用
  11. 【ADS使用:PA的大信号仿真的基本设置】
  12. js分页组件laypage
  13. 前端-js网页特效(三)动画效果及原理
  14. 利用运动学实现导弹仿真飞行
  15. python下载第三方库超时报错pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pyt
  16. JAVA-打印星号三角形
  17. 作为程序员,在挑选 iPad 时我在想什么?
  18. 【PAT甲级】1131 Subway Map
  19. ImmuCellAI | 免疫浸润计算工具 R包学习
  20. Cocos2d-x制作跳棋第三步:棋子动作实现及AI算法思想

热门文章

  1. @property与@synthesize的差别
  2. VoIP协议标准浅析
  3. 牛客网(剑指offer) 第十八题 二叉树的镜像
  4. PowerShell使用
  5. PHP XAMPP配置PHP环境和Apache80端口被占用解决方案
  6. 【数据结构与算法】之深入解析“复制带随机指针的链表”的求解思路与算法示例
  7. 下列关于物理层设备的叙述中,错误的是( )
  8. centos 7 No package python-dev available
  9. 2016年第七届蓝桥杯C/C++ C组国赛 —— 第二题:反幻方
  10. 排序算法 —— 选择排序