Python杂记

解决爬取的内容乱码
匹配多行内容
selenium多标签页切换
使用 set_page_load_timeout 设置页面加载超时
f.truncate(0)清空日志
os.path.join 路径拼接
Counter 统计列表某个数出现的次数

解决爬取的内容乱码
response.content.decode('utf-8')
匹配多行内容
result = """<body>
  <div class="content">
      <div>
           <h1>xxxxxx</h1>
           <h1>xxxxxx</h1>
    </div> 
</body>"""

# 由于 . 默认不匹配换行符,<body>.*</body> 无法匹配到完整的内容。
# 使用 re.DOTALL 标志,让 . 匹配换行符
content = re.findall('<body>.*</body>', result, re.DOTALL)
多标签页切换
from selenium import webdriver
 
# 初始化WebDriver
driver = webdriver.Chrome()
 
# 打开第一个标签页
driver.get("http://www.example1.com")
 
# 打开第二个标签页
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[-1])  # 切换到新打开的标签页
driver.get("http://www.example2.com")
  
# 关闭浏览器(可选)
# driver.quit()
使用 set_page_load_timeout 设置页面加载超时
#  使用 set_page_load_timeout 设置页面加载超时,Selenium 提供了 set_page_load_timeout 方法,
   可以设置页面加载的最大时间。如果页面在指定时间内没有加载完成,会抛出 TimeoutException 异常。


示例代码:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException

# 初始化浏览器
driver = webdriver.Chrome()

# 设置页面加载超时时间为 10 秒
driver.set_page_load_timeout(10)

try:
    # 打开网页
    driver.get("https://example.com")
    print("页面加载成功!")
except TimeoutException:
    print("页面加载超时,执行下一步操作...")

# 关闭浏览器
driver.quit()
f.truncate(0)清空日志
清空nginx日志内容
with open('access.log', 'w+') as f:
    f.truncate(0)

将文件内容清空,文件大小变为 0。
相当于删除文件中的所有内容,但保留文件本身。
os.path.join 路径拼接
# 使用 os.path.join 进行路径拼接
import os

file_path = os.path.join("data", "test", "a.txt")
print(file_path)
# data\test\a.txt

# 拼接字符串列表 (不推荐使用这个方式进行拼接路径,因为没有处理操作系统差异))
words = ['Hello', 'world', '!']
sentence = ' '.join(words)
print(sentence)  # 输出: Hello world !
Counter 统计列表某个数出现的次数
# 统计列表某个数出现的次数
from collections import Counter
list1=[1,2,1,1]
print( Counter(list1))

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:Python杂记

本文作者:伟生

发布时间:2025-02-26, 21:16:15

最后更新:2025-03-23, 21:22:01

原始链接:http://yoursite.com/2025/02/26/basic_21_note/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏