Python学习备份

ops/2024/10/18 18:19:32/

2023年1月19日15:25:16
1.
vsIDE编程python
python路径:C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86
python_pip路径(可添加到环境变量):C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86\Scripts
第三方库路径:C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86\Lib\site-packages

1.下载谷歌浏览器:Chroma:\version->查看版本
2.下载谷歌驱动:chromedriver.storage.googleapis.com/index.html->根据版本下载驱动
3.将驱动复制到pip路径

error1:name ‘by’ is not define->from selenium.webdriver.common.by import By
error2:handshake failed; returned -1, SSL error code 1, net_error -101->

s = Service(executable_path=‘C:\Program Files\Google\Chrome\Application\chromedriver.exe’)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(‘–ignore-certificate-errors’) # 忽略证书错误
driver = webdriver.Chrome(service=s, options=chrome_options)

#这个语句是自动找到对应版本的驱动
browser = webdriver.Chrome(ChromeDriverManager().install())

5.自动关闭:
可以通过设置选项来取消

2023年1月20日10:39:42
1.
F12查看网页源码->在console里输入 x ( " / / i n p u t [ @ i d = ′ k w ′ ] " ) − > 查找 c s s 元素 − > x("//input[@id='kw']") ->查找css元素-> x("//input[@id=kw]")>查找css元素>(“CSS选择器”)

F12查看网页源码后,再点左上角的箭头

XPATH用AND 或者 OR来联合
$x(“//a[@class=‘navitems-lk’ and @class=‘navitems-lk’]”)

HTML的input标签上明确设置了6个属性,分别为id、name、class、value、maxlength、autocomplete。

元素级等待机制的最佳实践方式是显式等待,它是一种相当完美的等待机制。
from selenium.webdriver.support.wait import WebDriverWait

2023年1月26日09:38:59
1.
写csv,编码要用gbk写中文:
csvHeaders = [“序号”, “名称”, “价格”]
with open(“D:\TestBooks.csv”, “w”, newline=“”, encoding=“gbk”) as f:
f_csv = csv.writer(f)
f_csv.writerow(csvHeaders)

嵌入的页面
driver.switch_to_frame(“f2”)
br.switch_to.default_content()

3.等待延时:
①driver.set_page_load_timeout(5) #全局设置,在整个实例的声明周期
②driver.implicitly_wait(5) #全局设置,隐式等待,findelement在规定时间内找元素

③from selenium.webdriver.support.wait import WebDriverWait
WebDriverWait(driver,10).until(registerLink(driver));#显示等待
WebDriverWait(driver,10).until(lambda p:p.find_element(By.LINK_TEXT,“rightnow”).is_displayed())
targetLocator = (By.LINK_TEXT,“RN”)
WebDriverWait(driver,10).until(expected_conditions.visibility_of_element_located(targetLocator))

from selenium.webdriver import ChromeOptions
option = ChromeOptions()
option.add_experimental_option(‘excludeSwitches’, [‘enable-automation’])#开启实验性功能
browser=webdriver.Chrome(options=option)
script = ‘’’
Object.defineProperty(navigator, ‘webdriver’, {
get: () => undefined
})
‘’’
browser.execute_cdp_cmd(“Page.addScriptToEvaluateOnNewDocument”, {“source”: script})
browser.get(‘https://www.taobao.com’)
这样可以更改window.navigator.webdriver的值为undefined

2023年1月28日16:13:19
1.
#更改user-agent
options.add_argument(‘User-Agent=Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36’)
2.
#更改设置
options.add_argument(‘–disable-infobars’) # 禁止策略化
options.add_argument(‘–no-sandbox’) # 解决DevToolsActivePort文件不存在的报错
options.add_argument(‘window-size=1920x3000’) # 指定浏览器分辨率
options.add_argument(‘–disable-gpu’) # 谷歌文档提到需要加上这个属性来规避bug
options.add_argument(‘–incognito’) # 隐身模式(无痕模式)
options.add_argument(‘–disable-javascript’) # 禁用javascript
options.add_argument(‘–start-maximized’) # 最大化运行(全屏窗口),不设置,取元素会报错
options.add_argument(‘–disable-infobars’) # 禁用浏览器正在被自动化程序控制的提示
options.add_argument(‘–hide-scrollbars’) # 隐藏滚动条, 应对一些特殊页面
options.add_argument(‘blink-settings=imagesEnabled=false’) # 不加载图片, 提升速度
options.add_argument(‘–headless’) # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" # 手动指定使用的浏览器位置
3.
去除navigator反爬虫
from selenium import webdriver
browser = webdriver.Chrome()
script=‘’‘Object.defineProperties(navigator, {webdriver:{get:()=>undefined}})’‘’
browser.execute_script(script)
4.
一个字节(BYTE)=8bit
常见字符集名称:GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等
ASCII字符集:英文字符均占1个字节
Unicode:所有字符都是两个字节,对于英文字符,高字节为0,低字节与ASCII码相同
GB2312:一个小于127的字符的意义与原来相同, 但两个大于127的字符连在一起时, 就表示
一个汉字, 前面的一个字节(他称之为高字节)从0xA1用到 0xF7, 后面一个字节(低字节)
从0xA1到0xFE, 这样我们就可以组合出大约7000多个简体汉字了. 在这些编码里, 我们还
把数学符号,罗马希腊的 字母,日文的假名们都编进去了, 连在 ASCII 里本来就有的数字
,标点,字母都统统重新编了两个字节长的编码, 这就是常说的"全角"字符, 而原来在127
号以下的那些就叫"半角"字符了

段落:
1、 代表开始以html形式展开、这是网页必须存在的
2、有这个/斜扛的都是代表这个标签结束,与上面的标签对等、所有的标签都必须要有/斜杠
3、代表开始、头部的意思
4、

代表是html里的表
5、是换行的意思、包含在tr里面的每个标签都换行
7、
代表是表头、也可以说是字段名
6、
意思为“单元格”,用于定义HTML表格中的标准单元格,可以包含数据
8、这是标题、就是显示什么网站名<br/> 9、这个标签里面的都是其他的文件内容<br/> 10、%s 这个百分号与s是什么意思呢、这是填充、可以从数据库返回数据填充进html<br/> 11、<p>段落标签、用于划分内容一段一段的<br/> 12、<h1>也是段落标签、用于划分标题一个题一个题、<h6>就是分6段<br/> 13、<img/>用于页面效果中展示最后一张图片<br/> 14、<ul type="">无序列表、用于效果中定义一个无序列表<br/> 15、<ol type="">有序列表<br/> 16、自定义列表->dl:外围标签dt:列表的标题标签dd:设置列表的具体列表项<br/> 16、<li>列表条目项标签、展示列表的一个条目<br/> 17、<a>超链接标签、通常就是放一个链接,<a>必须有一个herf属性<br/> 18、</a></a><div>块级的块标签、定义一个块、默认占满一行进行内容的显示<br/> 19、<b>粗字体<br/> 20、<i>斜字体<br/> 21、<u>底线<br/> 样式:<br/> 1、一个辅助性标签,位于文档的头部</u></i></b></div></li></ol></ul></h6></h1></p>

2、 3、< img src=”图片地址” width=”宽度” height=”高度” / > 4、< audio src=”音乐” autoplay=“autoplay” loop=”loop”/ > 5、2< sup >n< /sup >:设置上标 6、log< sub>10< /sub>10:设置下标

JavaScript
①要用围起来
②结尾要;
③您可以在 HTML 文档中放入不限数量的脚本。
脚本可位于 HTML 的 或 部分中,或者同时存在于两个部分中。
通常的做法是把函数放入 部分中,或者放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容。
④也可以把脚本保存到外部文件中。外部文件通常包含被多个网页使用的代码。
外部 JavaScript 文件的文件扩展名是 .js。
如需使用外部文件,请在

1.写文本:
document.write(“

这是一个标题

”);
document.write(“

这是一个段落。

”);
2.按钮:
点我!
3.改变HTML内容
x=document.getElementById(“demo”); //查找元素
x.innerHTML=“Hello JavaScript”; //改变内容
4.改变图片
function changeImage()
{
element=document.getElementById(‘myimage’)
if (element.src.match(“bulbon”))
{
element.src=“/images/pic_bulboff.gif”;
}
else
{
element.src=“/images/pic_bulbon.gif”;
}
}
5.改变HTML样式
x=document.getElementById(“demo”) //找到元素
x.style.color=“#ff0000”; //改变样式
6.
验证输入
if isNaN(x) {
alert(“不是数字”);
}
7.
if(isNaN(x)||x.replace(/(^\s*)|(\s*$)/g,“”)==“”){
alert(“不是数字”);
}

CSS
写法:

如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器。
id 选择器:
#para1
{
text-align:center;
color:red;
}
class 选择器:
.center {text-align:center;}

外部样式表:

内部样式表:

内联样式:

这是一个段落。

(内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式

cookie格式:
NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE

在正常情况下,Cookie值可以由服务器端或JavaScript代码设定。
在客户端第一次向服务器端发起请求之前,客户端是不会有Cookie值的。
当客户端的请求到达服务器端后,服务器端可以将Cookie值写在响应头中并返回给客户端,
或者客户端工具(如浏览器)在渲染页面时,由页面中的JavaScript代码生成Cookie值。
服务器生成Cookie值并将其添加到响应头中返回给浏览器,
浏览器检测到响应头中的Set-Cookie头域后将对应的Cookie值保存起来,
而后每一次请求都会自动携带对应的Cookie,除非Cookie过期或者被清除。


http://www.ppmy.cn/ops/44282.html

相关文章

PCIe (1)

计算PCIe的吞吐 PCIe吞吐依赖以下因素 >protocol overhead >payload size >completion latency >flow control update latency >characteristics of the devices that form the link Protocol Overhead 如果是8B/10B的编码,那么需要25%的开销。 对于Gen…

BE115配置2个或6个RS485/RS232串口

多协议网关BE115是一款多协议转多上行协议的综合性转换网关&#xff0c;支持IEC104、MQTT、OPC UA、Modbus RTU、Modbus TCP、SNMP等多种通信协议。上行协议包括IEC104、MQTT、OPC、Modbus RTU、Modbus TCP、SNMP&#xff0c;而下行协议涵盖DL/T645、Modbus RTU、Modbus TCP、I…

【Qt常用控件】—— 布局管理器

目录 前言 &#xff08;一&#xff09;垂直布局 &#xff08;二&#xff09;水平布局 &#xff08;三&#xff09;网格布局 &#xff08;四&#xff09;表单布局 &#xff08;五&#xff09;分组布局 &#xff08;六&#xff09;Spacer 总结 前言 之前使⽤Qt在界⾯上…

Python魔法之旅-魔法方法(01)

目录 一、概述 1、定义 2、作用 二、主要应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类…

mysql数据导入navicat中,报错提示1067

MySQL导入问题&#xff1a; 报错1067 - Invalid default value for 字段名 由于数据库版本升级&#xff0c;老数据库的数据文件导出以后&#xff0c;在新版本的数据库上执行会报错 这种问题多是由于默认值不兼容引起的&#xff0c;我们可以通过修改sql_mode来解决这个问题 由…

c++和Lua交互

lua vm Lua VM&#xff08;虚拟机&#xff09;是指运行Lua脚本的执行环境。Lua VM负责将Lua脚本编译成中间代码&#xff0c;然后将该中间代码解释执行或者编译成本地代码执行。在虚拟机之外&#xff0c;Lua的脚本代码并不能直接被计算机指令执行。因此&#xff0c;必须有想办法…

前端面试问题:子组件的某一个方法调用执行逻辑由父组件的属性状态变化来决定

面试官&#xff1a;请你讲讲你在该项目中遇到的问题是什么&#xff1f;你怎么解决这个问题&#xff1f; 答&#xff1a;我的回答&#xff1a;该项目的实现过程中我确实遇到了问题&#xff1a;【我会给大家整理回答思路和角度&#xff0c;那那么遇到这样的问题也可借鉴这种思路…

使用selenium打开浏览器之后,有浏览器内部的提示设置默认浏览器等,怎么屏蔽或关闭这些提示

当使用Selenium打开浏览器时&#xff0c;可能会遇到浏览器内部的一些提示或弹窗&#xff0c;例如设置默认浏览器的提示。你可以通过配置选项或设置浏览器参数来屏蔽或关闭这些提示。 以下是针对不同浏览器的一些方法&#xff1a; 对于Chrome浏览器&#xff1a; 在创建Chrome…