当前位置: 首页 > news >正文

python菜鸟知识

  • 去除空格

str = ' 这是 含 空格 '
print(f'去除两端空格={str.strip()}')
print(f'去除左端空格={str.lstrip()}')
print(f'去除右端空格={str.rstrip()}')
print(f'去除全部空格={str.replace(" ", "")}')
  • 方法返回对象yield

yield ':'.join([ip, port])yield {'ranking': ranking,'name': name,'img': img,'score': score,'author': author,'desc': desc,}
  • 字符串格式化变量format

BASE_URL = 'https://proxylist.geonode.com/api/proxy-list?limit=500&page={page}&sort_by=lastChecked&sort_type=desc'MAX_PAGE = 18urls = [BASE_URL.format(page=page) for page in range(1, MAX_PAGE + 1)]
  • 字符串拆分split

addr_split = addr.split(':')if(len(addr_split) == 2):host = addr_split[0]port = addr_split[1]yield Proxy(host=host, port=port)
  • 字符串拼接

tmp = ['b', 'a', 'c']
print(",".join(str(i) for i in tmp))
  • time格式化strptime

from datetime import datetimetargetTimeStr = "2024-10-08 10:08:00"
target_time = datetime.strptime(targetTimeStr, "%Y-%m-%d %H:%M:%S")# 获取当前时间current_time = datetime.now()print(f"当前时间: {current_time.strftime('%Y-%m-%d %H:%M:%S.%f')}")# 检查当前时间是否达到了目标时间if current_time >= target_time:
  • json转对象 【json.loads

result = json.loads(html)

  • 对象转json 【json.dumps】

json.dumps(item, ensure_ascii=False)
  • 对象中获取属性值

proxy_list = result['data']

  • http请求并返回响应内容

import requests# 1 基础
def request_dangdang(url):try:response = requests.get(url)if response.status_code == 200:return response.textexcept requests.RequestException as e:print(e)return None# 2 扩展【设置header】
def request_data(url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36','cookie': 'bid=dT8Z3OE5_cY; _pk_id.100001.4cf6=97307cec25d927ab.1727414571.; __utmz=30149280.1727414571.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmz=223695111.1727414571.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __yadk_uid=kz8b5hlKFkxH8Y9DITjOMuxWgBYikz0h; ll="108296"; _vwo_uuid_v2=D5055D26948C52E0832B26F1769798A7F|836a6dfe85637bb8c39462e0dadf8747; __utmc=30149280; __utmc=223695111; _pk_ses.100001.4cf6=1; ap_v=0,6.0; __utma=30149280.1074059804.1727414571.1728178377.1728193731.4; __utmb=30149280.0.10.1728193731; __utma=223695111.688962959.1727414571.1728178377.1728193731.4; __utmb=223695111.0.10.1728193731'}try:response = requests.get(url=url, headers=headers)if response.status_code == 200:return response.textreturn Noneexcept requests.RequestException:return None
  • 文件写入txt

"""抓取到的数据写入文件"""def write_item_to_file(item):print('开始写入数据 ====> ' + str(item))with open('dangdang_top_500_book.txt', 'a', encoding='UTF-8') as f:f.write(json.dumps(item, ensure_ascii=False) + '\n')f.close()
  • 写入Excel

import xlwt# 数据写入Excel
def save_to_excel(result_list):if result_list is None:returnbook = xlwt.Workbook(encoding='utf-8')sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True)sheet.write(0, 0, '排名')sheet.write(0, 1, '电影名称')sheet.write(0, 2, '图片')sheet.write(0, 3, '评分')sheet.write(0, 4, '作者')sheet.write(0, 5, '简介')for i, item in enumerate(result_list):row = i + 1sheet.write(row, 0, item['ranking'])sheet.write(row, 1, item['name'])sheet.write(row, 2, item['img'])sheet.write(row, 3, item['score'])sheet.write(row, 4, item['author'])sheet.write(row, 5, item['desc'])book.save('豆瓣电影Top250.xls')
  • for循环

# 1-25页
if __name__ == '__main__':for i in range(1, 26):print(f'正在抓取第{i}页')main(i) #自己的业务处理函数
  • html解析 BeautifulSoup

import requests
from bs4 import BeautifulSoup
import xlwt# 采集数据
def collect_data():result_list = []# 分页获取数据for i in range(0, 10):url = 'https://movie.douban.com/top250?start=' + str(i * 25) + '&filter='html = request_data(url)soup = BeautifulSoup(html, 'lxml')movie_sub_list = parse_result(soup)if movie_sub_list:result_list.extend(movie_sub_list)# print(f'movie_list={movie_list}')if result_list:save_to_excel(result_list)# 解析数据
def parse_result(soup):movie_list_this_page = soup.find('ol', class_='grid_view').find_all('li')for item in movie_list_this_page:ranking = item.find('em').get_text()name = item.find(class_='title').stringimg = item.find('a').find('img').get('src')score = item.find(class_='rating_num').stringauthor = item.find('p', class_='').get_text(strip=True)if item.find(class_='inq') is not None:desc = item.find(class_='inq').stringelse:desc = '暂无'print(ranking, name, img, score, author, desc)yield {'ranking': ranking,'name': name,'img': img,'score': score,'author': author,'desc': desc,}
  • 进程池使用multiprocessing

import multiprocessingimport requests
from bs4 import BeautifulSoup
import xlwt
import time
import sys# 采集数据
def collect_data():result_list = []start_time = time.time()urls = []try:# 根据电脑核数设置进程数pool = multiprocessing.Pool(multiprocessing.cpu_count())# pool = multiprocessing.Pool(1)# 分页获取数据for i in range(0, 10):url = 'https://movie.douban.com/top250?start=' + str(i * 25) + '&filter='urls.append(url)# 各进程处理后格式为:[[{},{}],[{}]]result_list_mid = pool.map(collect_data_pool, urls)# result_list_mid = pool.apply_async(collect_data_pool, urls)print('总条数=======', len(result_list_mid))if result_list_mid:result_list = [item for sublist in result_list_mid for item in sublist]# result_list.sort(key=lambda x: x['ranking'], reverse=True)save_to_excel(result_list)pool.close()pool.join()except Exception as e:print('采集数据【异常】', str(e))end_time = time.time()print('总耗时:', end_time - start_time)

持续更新补充ing……

相关文章:

python菜鸟知识

去除空格 str 这是 含 空格 print(f去除两端空格{str.strip()}) print(f去除左端空格{str.lstrip()}) print(f去除右端空格{str.rstrip()}) print(f去除全部空格{str.replace(" ", "")}) 方法返回对象yield yield :.join([ip, port])yield {ranking…...

GPT4o,GPTo1-preview, 拼

兄弟们GPT刚开的 需要上车的扣,工作用 大家一起PIN分摊点压力。 在当今数字化的时代,程序员这一职业已经从幕后走到了前台,成为推动科技进步和社会变革的关键力量。编写代码、解决问题、不断学习新技术,程序员们的日常充满了挑战与…...

论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction

论文来源:ACL 2022 论文地址:https://aclanthology.org/2022.acl-long.397.pdf 论文代码:https://github.com/fc-liu/MCMN (笔记不易,请勿恶意转载抄袭!!!) 目录 A…...

一篇文章带你快速了解linux中关于信号的核心内容

1. 信号概念 信号是操作系统用来通知进程某个特定事件已经发生的一种方式。它们是一种软件中断,可以被发送到进程以对其进行异步通知。 2. 信号处理的三种方式 执行默认动作执行自定义动作忽略 signal() 函数:将信号处理设置为 SIG_IGN,可…...

openEuler、Linux操作系统常见操作-(6)如何登录Linux

如何登录Linux Linux登陆方式主要有如下两种: 。本地登陆 。一个典型的Linux系统将运行六个虚拟控制台和一个图形控制台,openEuler目前暂未支持图形化界面; 可以通过CtrlAltF[1-6]在6个虚拟控制台之间进行切换。 远程登录 。默认情况下openEuler支持远程登录&…...

Python基础语法条件

注释 注释的作用 通过用自己熟悉的语言,在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。 注释的分类及语法 注释分为两类:单行注释 和 多行注释。 单行注释 只能注释一行内容,语法如下…...

006-MAVEN 的使用

MAVEN 的使用 一、依赖范围二、依赖的传递性三、依赖的原则四、依赖的排除 一、依赖范围 在引入log4j 依赖的时候,有一个scope设置,这个scope设置的值就是对应的依赖范围(因为compile 是默认的依赖范围,所以有时也可以省略)。 Maven 提供了…...

npm使用时报错:Could not retrieve https://npm.taobao.org/mirrors/node/index.json.

在使用npm时报错,报错信息如下: 报错的原因:是原来的淘宝镜像地址过期了 解决办法:修改镜像地址。打开nvm的安装地址 -->settings.txt文件 -->配置下载源 1、将settings.txt文件中的 node_mirror: https://npm.taobao.or…...

软考中级网络工程师——高级配置

文章目录 IS-ISBGP(边境网关协议)-IBGP-EBGP配置BFD(双向转发侦测)与Router-Static联动BFD与OSPF联动BFD与VRRP(虚拟路由器冗余协议)联动VRRP配置(基于网关备份)FW基础配置FW高级配置DHCP路由策略 IS-IS 第一步:每一个路由设置环回口地址 第二部:配置接…...

Leetcode 第 141 场双周赛题解

Leetcode 第 141 场双周赛题解 Leetcode 第 141 场双周赛题解题目1:3314. 构造最小位运算数组 I思路代码复杂度分析 题目2:3315. 构造最小位运算数组 II思路代码复杂度分析 题目3:3316. 从原字符串里进行删除操作的最多次数思路代码复杂度分析…...

Linux性能调优,还可以从这些方面入手

linux是目前最常用的操作系统,下面是一些常见的 Linux 系统调优技巧,在进行系统调优时,需要根据具体的系统负载和应用需求进行调整,并进行充分的测试和监控,以确保系统的稳定性和性能。同时,调优过程中要谨…...

STM32的独立看门狗定时器(IWDG)技术介绍

在嵌入式系统中,确保系统的稳定性和可靠性至关重要。看门狗定时器(Watchdog Timer, WDT) 是一种常用的硬件机制,用于监控系统的运行状态,防止系统因软件故障或意外情况进入不可预期的状态。STM32系列微控制器提供了两种…...

自动化生成工作流?英伟达提出ComfyGen:通过LLM来匹配给定的文本提示与合适的工作流程

ComfyGen的核心在于通过LLM来匹配给定的文本提示与合适的工作流程。该方法从500个来自用户的多样化提示生成图像,随后使用一系列美学预测模型对生成结果进行评分。这些评分与相应的工作流程形成了一个训练集,包含提示、工作流程及其得分的三元组。 然后…...

indicatorTree-v10练习(有问题)

目标:设计数据库表表格式,将“indicatorTree-v10.json”导入到数据库,再从数据库读取写为JSON文件。 其他要求:数据库要求为mysql数据库;编程语言暂时限定为C;JSON解析使用本文件夹中的cJSON.c和cJSON.h&am…...

python源码:指定麦克风/音响播放歌曲

前言 我使用pygame实现了指定麦克风/音响播放歌曲的功能,主要目的是解决直播过程的多源声道控制问题。 代码 # 查看自己的音频设备 # 请记住目标音频设备的具体名称 import pygame as mixer import pygame._sdl2 as sdl2mixer.init() # Initialize the mixer, thi…...

基于华为云智慧生活生态链设计的智能鱼缸

一. 引言 1.1 项目背景 随着智能家居技术的发展和人们对高品质生活的追求日益增长,智能鱼缸作为一种结合了科技与自然美的家居装饰品,正逐渐成为智能家居领域的新宠。本项目旨在设计一款基于华为云智慧生活生态链的智能鱼缸,它不仅能够提供…...

OJ-1015图像物体的边界

分析 思路 1.输入读取:读取网格的维度(M,N)和像素值到一个二维数组中。 2.迭代:遍历二维数组中的每个单元格。 3.边界检测:对于每个像素值为1的单元格,检查其八个相邻的单元格。如果任何相邻单元格的像素值为5,则增加边界计数。 4,边界计数调整:由于每…...

RAG 入门实践:从文档拆分到向量数据库与问答构建

本文将使用 Transformers 和 LangChain,选择在 Retrieval -> Chinese 中表现较好的编码模型进行演示,即 chuxin-llm/Chuxin-Embedding。 你还将了解 RecursiveCharacterTextSplitter 的递归工作原理。 一份值得关注的基准测试榜单:MTEB (M…...

445: 选择问题

解法: 第k大的数据查找 a, b map(int, input().split()) l list(map(int, input().split())) l.sort() print(l[b-1])...

IP地址类型选择指南:动态IP、静态IP还是数据中心IP?

你是否曾经困惑于如何选择最适合业务需求的IP地址类型?面对动态IP、静态IP和数据中心IP这三种选择,你是否了解它们各自对你的跨境在线业务可能产生的深远影响? 在跨境电商领域,选择合适的IP类型对于业务的成功至关重要。动态IP、…...

基于Python flask的豆瓣电影可视化系统,豆瓣电影爬虫系统

博主介绍:✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不…...

面试不是一场遭遇战

引言 Ethan第一次跳槽时,把工作总结搞成简历,丢到BOSS,面了几场,结果都很糟。复盘下来,发现面试过程临场发挥太多,把攻坚战打成了遭遇战。 那面试要如何准备?什么情况下跳槽?有哪些大…...

【力扣 | SQL题 | 每日3题】力扣1795,1907,1398,602

1. 力扣1795:每个产品在不同商品的价格 1.1 题目: 表:Products ---------------------- | Column Name | Type | ---------------------- | product_id | int | | store1 | int | | store2 | int | | store3 …...

centos7.9升级rockylinux8.8

前言 查看centos的版本 ,我这台服务器是虚拟机,下面都是模拟实验 升级前一定要把服务器上配置文件,数据等进行备份 [rootlocalhost ~]#cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]#uname -a Linux jenkins_ser…...

C++初阶(三)---C++入门(下)

目录 一、内联函数 1.内联函数的定义与底层机制 0x01.内联函数的定义 0x02.内联函数的底层机制 2.内联函数的优缺点 优点: 缺点: 3.内联函数的使用建议 4.内联函数的注意事项 二、auto关键字(C11) 1.代码示例 2.auto使…...

Linux--多路转接之epoll

上一篇:Linux–多路转接之select epoll epoll 是 Linux 下多路复用 I/O 接口 select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。它是 Linux 下多路复用 API 的一个选择,相比 select 和 poll&#xff0c…...

自动化工具Nico,从零开始干掉Appium,移动端自动化测试框架实现

这篇将用较短的篇幅给大家介绍我是如何实现iOS和Android的inspector(元素审查工具)的。 实现原理 为了更方便的显示UI界面,且更容易制作,我选择了使用web端来承载整个元素树展示。同时我选用Flask一次性梭哈前后端(因…...

Fast CRC32

链接: Fast CRC32 Error Checking Real life data tends to get corrupted because machines (and humans) are never as reliable as we wish for. One efficient way is make sure your data wasnt unintendedly modifiied is to generate some kind of hash. T…...

生成一个带有二维数据和对应标签的螺旋形数据集(非线性可分数据集)的代码解析

def create_dataset():np.random.seed(1)m 400 # 数据量N int(m/2) # 每个标签的实例数D 2 # 数据维度X np.zeros((m,D)) # 数据矩阵Y np.zeros((m,1), dtypeuint8) # 标签维度a 4 for j in range(2):ix range(N*j,N*(j1))t np.linspace(j*3.12,(j1)*3.12,N) np.rando…...

PHP unset() 函数的作用

PHP 中的 unset() 函数用于销毁指定的变量。具体来说,它会解除变量名与其数据之间的关联,从而释放该变量所占用的内存。不过需要注意的是,unset() 并不是删除变量的内容,而是取消对变量名的引用。如果变量是数组中的某个元素或者对…...