数据接口(json)和selenium的使用

这篇具有很好参考价值的文章主要介绍了数据接口(json)和selenium的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建文件

import os
# os.mkdiv(文件名)
os.mkdiv('test')
#创建名为test的文件夹
# os.path.exists(文件名)   判断文件是否存在 返回布尔值

数据接口

有些文件会以接口的形式传入,找到接口之后提取源代码就行。

例如:英雄联盟的的英雄大部分都是接口的形式

url = https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js

将这个获取到的requests.get(url) 将JSON数据转为python的数据源。(大部分是字典)

然后用字典操作数据比较简单

最后写入文件中

selenium的基本步骤

需要下载浏览器驱动

查看自己的浏览器版本:chrome://version/

下载驱动版本和自己浏览器最近的版本号:(国内镜像文件)https://registry.npmmirror.com/binary.html?path=chromedriver/

注意:如果没有自己浏览器的版本号,找与之对应最接近的一个版本号的文件夹,下载对应的系统就行,放在安装python的主环境中。

1.创建浏览器对象(浏览器对象如果是全局变量,浏览器不会自动关闭)
from selenium.webdriver import Chrome
b = Chrome()
2.打开网页(你需要爬的数据在哪个网页里面,就打开哪个网页)
b.get('https://movie.douban.com/top250')
3.获取网页源代码(获取到一定是页面中加载出来的)

有时候网比较卡的时候可以调用time模块中的sleep函数

浏览器对象.page_source

print(b.page_source)
4.关闭浏览器
b.close()

selenium的使用方法

1.输入框输入内容

1)找到输入框

网页对象.find_element_by_id() 虽然是id属性的值,但是不用加#,class属性也不加. 直接写标签名

网页对象.find_element_by_css_selector() 后面接CSS选择器 找到下面的第一个标签

如果element是复数加了s就代表是许多,返回列表

2)输入框输入内容

节点对象.send_keys(输入字符串)(末尾加一个\n可以代表按了一个回车。换行嘛)

2.点击按钮

1)找到需要点击的标签

节点对象.click()

3.切换选项卡
获取需要点击的所有标签:如果拿到标签后需要点击或者输入,必须通过浏览器获取标签

有时候点击一个链接会打开一个新的选项卡

这时候就要切换选项卡

就算点开了新的链接,只要不在原来的网页重新覆盖,创建的浏览器对象就依然是最开始的b= chrome()

切换对象的方法:浏览器对象.switch_to.window(选项卡名)
网页名查找方法:浏览器对象.window_handles 这个数据一般返回一个列表。直接取-1的下标,就是最新打开的选项卡名。 (打印出来不是中文名字,只是一个地址,但是理解成选项卡名会更好理解一点)

此时浏览器对象就换成新打开的,可以对这些进行操作。

最后还是要换回初始浏览器对象在操作其他的链接。

步骤1:关闭新的浏览器对象

步骤2:切换选项卡。 (一般把下标写成0。)

一般selenium的思路步骤:
就和我们人去打开浏览器操作是一样的

打开浏览器(创建浏览器对象)-浏览器输入网页(浏览器对象.get()操作)-选中点击获取输入的标签-send_keys或者选中标签点击click

如果有选项卡,需要切换选项卡 - 浏览器对象.switch_to.window(选项卡名) {选项卡名字,浏览器对象.window_handles[-1]} 返回列表 (此时就切换了浏览器对象在新网页上)

操作完新浏览器对象操作之后,需要关闭浏览器,关闭之后浏览器对象不会发生改变,也要切换回来

selenium操作页面滚动

浏览器对象.execute_script(window.srcollBy(x方向偏移量,y方向偏移量))

滚动之后过几秒在获取数据

cookie的设置

requests:直接在网页需要登录之后,找到对应网页的request Hearders 的cookie的值,复制在Hearder里面

selenium:需要先在浏览器对象里面登录一次,在刷新网页,然后获取cookie值(返回一个列表),result = 浏览器对象.get_cookies() . 将result写入txt文件,(一般将此数据转成json文件写入txt,下次提取就很方便了)

下次打开网页,在将写入的txt文件的cookie读出来(json数据格式的文件),在转为python格式文件。遍历这个列表中每个元素依次加入网页的cookie里面。浏览器对象.add_cookie(‘列表中的各个元素’)

with open('testCookies.txt', encoding='utf-8') as f:
    cookies = f.read()
    mycookies = json.loads(cookies)

for i in mycookies:
    b.add_cookie(i)

代理IP

requests的代理方法
proxies = {
    'http': 'http://221.10.105.215:4531',
    'https': 'http://221.10.105.215:4531'
}
respones = requests.get('https://www.douban.com',headers=hearders,proxies=proxies)

221.10.105.215:4531 这个就是我找到的代理ip值。

这样就完成了requests的更换代理ip值文章来源地址https://www.toymoban.com/news/detail-400988.html

到了这里,关于数据接口(json)和selenium的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python3.11教程3:模块和包(pip/conda)、文件系统(os/ shutil/json/pickle/openpyxl/xlrd)

    本文相关链接: Python官网、Python 3.11.5 中文文档、慕课:Python语言程序设计、Real Python :Write More Pythonic Code Miniconda、Anaconda、conda文档 Python 标准库官方文档、 《os — 多种操作系统接口》、《os.path — 常用路径操作》、《shutil — 高阶文件操作》 Pandas文档《Input/output》、 op

    2024年02月09日
    浏览(53)
  • PHP解析带BOM头的JSON数据,对接他人接口的时候,使用json_decode(),返回null的问题与解决方法

    在php开发中会遇到和他人对接接口,对方使用json传输数据,使用json_decode()函数却无法将json数据转换为数组。 先看封装的代码 这种对接post接口的封装方法一般是没有问题的,但是我们打印$res的时候,会发现只会返回NULL。而打印$response的时候,是可以返回json字符串的。我们

    2024年02月06日
    浏览(48)
  • Python 如何创建 json 文件?

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。在 Python 中,我们可以使用内置的 json 模块来创建和处理 JSON 数据。本文将介绍如何使用 Python 创建 json 文件。 使用 json.dump() 方法可以将 Python 对象序列化为 JSON 格式,并写

    2024年02月08日
    浏览(42)
  • Python:使用openpyxl读取Excel文件转为json数据

    openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files 文档 https://openpyxl.readthedocs.io/en/stable/ https://pypi.org/project/openpyxl/ 安装 环境 读取文件示例:将Excel文件读取为json数据 有如下一个文件 data.xlsx 实现代码 输出读取的json数据 读写示例

    2024年02月15日
    浏览(73)
  • 使用筛选后的coco数据集json文件,复制对应coco数据集图像

    有时候,我们需要对已经有的数据集进行数据划分,划分后的coco数据集需要寻找对应的图片,可以使用下面的程序脚本。 首先,导入三个必要的模块:json、os 和 shutil。json 模块用于读取 JSON 文件,os 模块用于处理文件路径,shutil 模块用于执行文件复制操作。 接下来,定义

    2024年02月01日
    浏览(35)
  • postman将接口返回结果生成json文件到本地

    postman将接口返回的结果除了可以【生成csv文件】到本地还可以生成json文件。具体操作如下: 一样的模拟接口返回批量参数值,测试代码如下: 这个接口返回的数据结构如下: { \\\"status\\\":1, \\\"code\\\":\\\"10000\\\", \\\"data\\\":[ { \\\"id\\\":1, \\\"description\\\":\\\"test1\\\" }, { \\\"id\\\":2, \\\"description\\\":\\\"test2\\\" } ] } postman中新建

    2024年02月12日
    浏览(46)
  • 大数据系列 | 阿里云datav数据可视化(使用json文件生成可视化动态图标)

    简介 DataV 数据可视化是搭建每年天猫双十一作战大屏的幕后功臣,ECharts 是广受数据可视化从业者推崇的开源图表库。从今天开始,DataV 企业版接入了 ECharts 图表组件,当你使用 DataV 搭建可视化项目时,可以轻松地插入 ECharts,这意味着更丰富多样的图表效果,也让编程小白

    2024年02月12日
    浏览(59)
  • npm install报错无法创建packge.json文件

    当你在运行 npm install 时遇到错误,提示无法找到 package.json 文件,也没有创建一个 package.json 文件,只创建了一个package-lock.json文件。这通常意味着你还没有在你的项目目录中创建这个文件,或者你可能在错误的目录中运行了该命令。package.json 是 Node.js 项目的核心文件,它包

    2024年02月22日
    浏览(37)
  • DEDECMS JSON数据生成 DEDECMS JSON接口制作

    json数据格式可以方便不同站点之间进行数据调用引用,当然我们的DEDECMS也可以实现全站数据生成JSON供其他站点调用,代码很简单,主要用到include/json.class.php。 织梦本身是自带json标签的,调用方法: 这个标签调用例子在织梦手册里已经给我们提供了,url是一个远程json接口地址

    2024年02月02日
    浏览(31)
  • 自动更改由VSCode调试器创建的默认launch.json文件

    File - Preference - Settings 修改下面的部分

    2024年02月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包