python selenium与js 的数据交互问题

通过selenium的executeScrpit()可以执行js代码,
我用js代码获取数据后把它存到cookie中,然后通过python再获取cookie的值,但是值取不到,也不打印,但是也没有报错,代码如下,请高手指点一下,谢谢!

用python获取cookie的代码如下:
图片说明


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
import time
import urllib
import http.cookiejar
import requests

from urllib import request
from http import cookiejar

def capture(url, save_fn="capture.png"):
  browser = webdriver.Chrome() # Get local session of firefox
  browser.set_window_size(1200, 900)
  browser.get(url) # Load page
  browser.execute_script("""
    (function () {
      var y = 0;
      var step = 100;
      window.scroll(0, 0);
      var height = document.body.scrollHeight;  
      document.cookie = "scrollHeight="+height;


      function f() {
        if (y < document.body.scrollHeight) {
          y += step;
          window.scroll(0, y);
          setTimeout(f, 50);
        } else {
          window.scroll(0, 0);
          document.title += "scroll-done";
        }
      }

      setTimeout(f, 1000);
    })();
  """)

  for i in range(30):
    if "scroll-done" in browser.title:
      break
    time.sleep(1) 


  cookie = cookiejar.CookieJar()
  #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
  handler=request.HTTPCookieProcessor(cookie)
  #通过CookieHandler创建opener
  opener = request.build_opener(handler)
  #此处的open方法打开网页
  #response = opener.open('http://www.jb51.net')
  #打印cookie信息
  for item in cookie:
      print('Name = %s' % item.name)
      print('Value = %s' % item.value)  


  browser.save_screenshot(save_fn)
  browser.close()


if __name__ == "__main__":

  capture("http://www.jb51.net")

2个回答

怎么说呢 selenium打开的页面跟 你用requests设置cookie的页面不是同一个

不清楚你要cookie最终是要做什么,要是进行爬虫,不要cookie也可以
jb51的状态码是304 Not Modified,不是200,不知道与这个有没有关系
应该是网址设计的问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python + selenium 环境搭建及问题
搭建平台windows 准备工具如下: ------------------------------------------------------------- 下载python https://www.python.org/ ------------------------------------------------------------- 如果你是新学python,...
JavaScript与Android的数据交互,js与安卓数据交互WebView
本文思路: 1,webview介绍, 2,android中的书写 3,js中的书写, 4,出现的问题,一定要看完。不然。。。就出错了 说道数据交互,首先要先说一下交互需要使用的控件WebView; 简单的介绍下用法: 1,和正常控件一样,声明,初始化, WebView myWebView = (WebView) findViewById(R.id.w
纯手工js数据交互
/** * [方法名]:CheckReplace (特殊字符 转换 方法) [功 能]:字符串转换函数,(用于出库时转换特殊格式字符) * * @param [ s ]:要转换的字符串 * @return [返回]:转换后的安全的str */ public static String strReplace(String s) {//文本信息检查 if(s==null) return s; if (s.equals("")) return s; else { StringBuffer stringbuffer = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); switch (c) { case 0: // '空格' stringbuffer.append("&nbsp;"); // 依次将相应的字符转化成空格 break; case 10: // '\n' stringbuffer.append("<br/>"); // 依次将相应的字符转化成空格 break; case 32: // ' ' stringbuffer.append("&nbsp;"); break; case 34: // '"' stringbuffer.append("&quot;"); break; case 39: // '\'' stringbuffer.append("’"); break; case 36://$ stringbuffer.append("$"); break; case 60://< stringbuffer.append("<"); break; case 62://> stringbuffer.append(">"); break; case 38://& stringbuffer.append("&"); break; default: stringbuffer.append(c); break; } } return stringbuffer.toString().trim(); // 返回转化以后的字符串 } }
js jsp 数据交互
//Date类型的字段转化为json后会变为object,object],通过以下可以实现,转回 var JsonDateValue = new Date(detail[i][2].time); var text = JsonDateValue.toLocaleString(); 1。js变量获取jsp页面中java代码的变量值。 方法:var JS变量名 = '' v...
Qt与JS的数据交互
演示了使用 QWebChannel 在Qt(QWebEngineView/QWebEnginePage)与JS之间的数据交互。示例工程非常简单,使用QtCreator直接打开即可运行(需Qt5.6.2以上)。
PHP和JS的数据交互
js部分   function borrow(file_ids,secret,time,FILE_ID,FILE_TITLE,SECRET1){ jQuery.ajax({ url:"to_borrow.php", data:{'file_ids': file_ids}, type:"POST", success:funct
js与Android、IOS数据交互
一、先说一下js与Android的数据交互 重点了解js调用Android的方法:window.jstojava.closeDialog(参数1,参数2)   其中jstojava为与app协商好的类名,closeDialog()为Android原生方法名 二、再说IOS与js的交互 查询一些资料了解到,js与ios的交互有很多方式目前很流行的库有WebviewJavaScriptBridg
js与PHP数据交互
PHP $q=$_GET["q"]; // 设置返回json格式数据 header('content-type:application/json;charset=utf8'); //连接数据库 $link = mysqli_connect('post', 'username', 'password','database'); if (!$link){  die('Could no
JS与C#的数据交互
前台:                 function test(text) {             document.getElementByIdx_x_x_x_x("messageTextBox").value = text;                   }         <form id="form1" runat="server">           
js和java的数据交互!!
现在我有个问题,rn有个类似控制台的界面,里面有很多按钮,我想让用户点击一个按钮图片之后,触发不同的命令.rnrnrnrn在这个按钮图片的按下和松开的动作里,会把命令字符串传递给一js的方法rnfunction MV_SendCMD(str)rnrn当写到这里的时候.我郁闷了...rnrn这些命令的实现是在java的类库里..我最终要把命令字符串传递给java的方法.rnrn可是我怎么把这个str传递给java的方法呢??因为我调用java的方法的时候需要这个命令.rn
iOS开发之JS数据交互
最近写东西的时候,后台给我的数据好多都是需要调JS才能得到,找了好多资料,终于给搞出来了,贴出部分代码分享一下,希望可以帮到某一些遇到同样困难的小伙伴,虾面上代码。 viewController.h文件 #import #import "AFNetworking.h" #import "WebViewJavascriptBridge.h" #import "SDWebImageMa
Qt与JS数据交互
QT版本:5.6.2核心类:QWebEngineView, QWebChannel 1、C++和HTML通过websocket通信,通过官方的 qwebchannel.js 实现。2、C++和HTML共用一个对象并以此进行通信,即通过QWebChannel的registerObject函数。void QWebChannel::registerObject(const QString &amp;amp;id...
js与jsp数据交互
在JS与JSP当中,数据交互是不能直接进行交互的,为啥? JS是相当于前段的数据,而JSP是后台的数据,两者要进行交互一定的通过第三者交互。就行两台独立的计算机,上面的文件要进行交互必须进行传输才能交互,其中一台式不能直接使用另外一台计算机的上面的数据。 前端与后台怎么进行交互?JS可以通过将值添加到URL当中,这样链接时候就可以将JS 的值传到后台当中,也可以使用表单,这样也可以将表单的...
JS前后台数据交互
用JS脚本如何给后台cs文件中变量和数组赋值。再后台cs文件中又如何给前台JS中的变量赋值?
js与struts2数据交互
给一段JS与struts2之间传值的例子,谢谢了rn(不用js框架)纯js代码实现
selenium PYTHON
selenium PYTHONselenium PYTHONselenium PYTHON
selenium for python
比较全的selenium for python 教程包括了基础如定位到高级的一些应用如bdd,分布式,多线程等高级应用
python selenium
selenium python语言实现,刚刚 做的 一个 脚本,测试下。
SELENIUM PYTHON
Selenium automates browsers. That's it. What you do with that power is entirely up to you. Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) also be automated as well. Selenium has the support of some of the largest browser vendors who have taken (or are taking) steps to make Selenium a native part of their browser. It is also the core technology in countless other browser automation tools, APIs and frameworks.
python使用selenium爬取js加密的网页
python使用selenium爬取js加密的网页 我们经常使用Python从网站上爬取我们喜欢的图片,比如从煎蛋网爬取妹子图。现在虽然煎蛋网取消了“OOXX”栏目,但是至少把名字换成了随手拍,我今天想从该网站爬取妹子图,去发现没有办法 从爬取的代码中找到 ‘.jpg’ 关键词,这就尴尬了,我用审查元素看了一下,是有的,但是又看了一下网页的源代码,没有找到,实际上我们使用Python 的下面两句...
Python与C++数据交互编码问题
Python与C++数据交互编码问题
python selenium处理页面js弹出的窗体
使用selenium自动化WEB页面,我现在的情况是点击某个button后,弹出一个JS静态窗体,窗体中有窗体标题和输入框,窗体的底部有2个按钮(提交和重置),我要实现自动化点击"提交"按钮,怎么使用selenium来完成?rn 本人解决思路:rn1、想通过HTML查看文件源文件,然后得到该按钮的ID,然后用driver.find_element_by_id('ID').click()完成。但发现此类JS窗体根本从HTML中获取不到ID,当然,有其他方法能获取的,望请教。rn2、在网上也搜了写资料,是关于JS窗体:alert,comfirm,prompt,比如说,alert这中类型的窗体,与我目前所弹的窗体不太一样,使用driver.switch_to_alert().accept()会报错.rnrn在线等....小弟刚使用selenium模块,望前辈赐教,谢谢
PHP与Python进行数据交互
个人博客同步文章 https://mr-houzi.com/2018/05/... 最近,决定在一个项目用tp5进行APP接口开发,用Python做数据分析,然后这就面临一个问题:PHP和Python如何进行数据交互? 思路 我解决此问题的方法是利用了PHP的passthru函数来调用命令运行Python脚本。 实现 在PHP中调用命令...
python与json之间数据交互
1.什么是Json JSON其实是一个单独的语言,跟javascript没有多大关系,并不是傍javascript出现的。它的存在是为了跨语言交换数据。   2.Python中的Json Pyrhon中Json的载体是字符串,Python中字符串可以用单引号也可以使用双引号。但是为了表达JSON字符串必须使用双引号。否则无法解析。 函数 描述 ...
python中mysql数据交互
def main():     conn = pymysql.connect(host=&quot;localhost&quot;, user=&quot;root&quot;, password=&quot;mysql&quot;, database=&quot;jingdong&quot;, charset=&quot;utf8&quot;) #     # 假如cursor=pymysql.cursors.DictCurosr,则 返回的Cursor是字典Cursor,返回的结果集是以字...
Python + selenium 实践问题(一)
最近遇到重复操作网页的工作,感觉绝大部分内容是重复劳动就想脚本来完成,想到了用Python 网上搜了一下推荐使用Python+selenium 一下是我第一步测试代码: # -*- coding: utf-8 -*-    from selenium import webdriver from selenium.webdriver.firefox.firefox_binary impor
学习selenium + Python 遇到的问题
1. UnicodeDecodeError: 'utf8' codec can't decode byte 0xe6 in position 0: unexpected end of data 原因:Python语言不支持utf-8的编码 所以需要用'u'声明中文的编码是utf-8 。u类似于java中的String 正确代码:driver.find_element_by_id("kw").
(python解析js)selenium结合phantomjs抓取js生成的页面
有些网页是在加载时动态创建HTML内容,只要在js代码完全执行完后才会显示最终结果。如果用传统的方法抓取页面,就只能获得js代码执行之前页面上的内容。要解决这个问题有两种方法: 1.直接从js代码中抓取数据(执行js代码,解析js变量)。 2.用第三方库运行js,抓取运行后的最终html页面。 在python中使用selenium执行jsselenium是一个强调的网络数据采集工具,其最初是
数据交互的问题。
在用户刷新页面时候出现:“不重发信息,则无法刷新页面。”rnrn这是由于用户与服务器的数据交互造成的,我想在用户刷新时不弹出那样的对话筐,这样的问题有什么办法能解决吗?我试过 ,这样虽然上面的问题解决了,但是把method改成get 是不安全的。rnrn请各指教。
html与js和php间数据交互
html与js和php间数据交互 html静态页面调用php文件 - 为了这有限的生命 - 博客园  http://www.cnblogs.com/suihui/p/3544464.html PHP学习笔记(十):HTML如何显示PHP中的变量和脚本中的变量 - Jalon2015的博客 - 博客频道 - CSDN.NET  http://blog.csdn.net/j
java,js和flex之间数据交互
在java页面用img标签获取图片数据然后怎样通过js代码传给flex页面,flex的image标签接收
js 父窗体子窗体数据交互
通过js实现父窗体子窗体数据交互,子窗体获得父窗体的信息,在子窗体中修改父窗体的内容
浅谈混合开发与Android,JS数据交互
本文是作者原创,如转载请注明出处!一.概论 现在时代已经走过了移动互联网的超级火爆阶段,市场上移动开发人员已经趋于饱和,显然,只会原生APP的开发已不能满足市场的需求,随着H5的兴起与火爆,H5在原生APP中的使用越来越广泛,也就是我们常说的混合开发(Hybrid APP).最新很火的微信小程序相信大家都是知道的,实际上微信小程序加载的界面就是一个HTML5的界面,HTML5界面在一些电商类的AP
JS在Selenium中的使用
JS在Selenium中的使用 前言: 做Web自动化时,一般可利用Selenium定位页面元素进行如click,sendKeys类的操作。但也常遇到api没有调用错,却无 法定位到元素,或者,无法进行操作。 Fortunately,Selenium提供了操作JS的方法:execute_script(),可以直接执行js的脚本。 常用的js汇总如...
如何实现JS与服务器进行数据交互
如何实现JS与服务器进行数据交互,类似于WEBQQ聊天功能。谢谢!
Mingw版本的qt5.7与js的数据交互
一开始找了很久这方面的资料,无奈不是找到qt5.0之前的资料亦或是msvc版本qt的资料,至于会出现什么样的问题,相信只要查过资料的人都心知肚明。本人比较懒,不想换qt的版本,更不想安装vs使用msvc版本的qt,但是还想进行值传递,本人不才,想用下面的方法来解决。 qt与js进行数据传递,我做的是qt处理好的数据存储在txt文件里,然后在js进行读取从而实现了二者的值传递。 具体实现代码如下...
selenium的一些js操作
控制滚动条高度 1.滚动条回到顶部: js=&quot;var q=document.getElementById('id').scrollTop=0&quot; driver.execute_script(js) 2.滚动条拉到底部 js=&quot;var q=document.documentElement.scrollTop=10000&quot; driver.execute_script(js) 3.这里可以修改scr...
Python + Selenium自动化测试 -- Python常用方法
1、路径 os.path.abspath(‘.’) # 返回绝对路径 os.path.realpath(file) #返回真实路径,方法所在文件的路径 os.getcwd() # 获取当前工作目录,也就是在哪个目录下运行这个程序。【os.path.abspath取决于os.getcwd,如果是一个绝对路径,就返回,如果不是绝对路径,根据编码执行getcwd/getcwdu. 然后把
java和python的数据交互的两种方式
方案一:jpython 需要在java中加载py文件生成拦截器,调用相应的方法 传参需要转换成jpython中的相应类型 总结:自由度不够高,耦合性太强,且尚不得知py文件间存在依赖是否会引发问题。 PythonInterpreter interpreter = new PythonInterpreter(); interpreter.execfile("C:\\Python27\\progr...
Python selenium —— selenium与自动化测试成神之路
忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习。在群里总是会遇到很多人问低级问题,写了一个selenium脚本,却执行失败,跑到群里来问,大神,这里为什么会报错?很多都是明显的语法问题,一问方知,今天刚刚学selenium,之前也没有语法基础,没学过Java,没学过Python,就跑来搞selenium,想玩自动化。每当看到这样的同学,总是很想吐槽。今天博主也不是想要吐槽,只
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表