python 数据库去重操作

利用python爬取长江日报新闻并且去重_python 爬虫 实现增量去重和定时爬取实例... 前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能;本文作者同开源中国(殊途同归_);解决思路:1.获取目标url2.解析网页3.存入数据库(增量去重)4.异常处理5.实时更新(定时爬取)下面为数据库的配置 mysql_congif.py:import pymy... 阅读详情
# -*- coding: UTF-8 -*-
"""
@version: python2.7.8
@author: XiangguoSun
@contact: sunxiangguodut@qq.com
@file: connectdb.py
@time: 2016/12/28 16:12
"""
import MySQLdb
import time

def connectdb():
    while True:
        try:
            db = MySQLdb.connect("localhost", "root", "root", "douban")
            return db
        except MySQLdb.Error,e:
            print e.args,"(connectdb) we will try again after 10 seconds..."
            time.sleep(10)


下面是对数据库进行操作

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@version: python2.7.8 
@author: XiangguoSun
@contact: sunxiangguodut@qq.com
@file: dbfunction.py
@time: 2017/2/10 11:08
@software: PyCharm
"""
import sys
from connectdb import connectdb
reload(sys)
sys.setdefaultencoding('utf-8')

def fun(tablename):
    db = connectdb()
    cursor = db.cursor()
    print "start transform",tablename,"..."
    sql = "SELECT COUNT(*) as repetitions, uid, time " \
          "FROM " + tablename + " " \
                                "GROUP BY uid, time " \
                                "HAVING repetitions > 1"
    cursor.execute(sql)
    an = cursor.fetchall()
    print "duplicate data: ",len(an)

    sql = "SELECT uid, `time` " \
          "FROM " + tablename + " " \
          "GROUP BY uid, time"
    cursor.execute(sql)

    print "create tmp..."
    sql = "CREATE TABLE tmp SELECT `uid`, `likers_count`, `time`, `url`, `comments_count`, `activity`, `type`, `content`, `crawtime`" \
          "FROM " + tablename + " GROUP BY uid, time"
    cursor.execute(sql)
    print "create tmp done!"

    print "drop table "+tablename+"..."
    sql = "DROP TABLE " + tablename
    cursor.execute(sql)
    print "drop table "+tablename+"done!"

    print "rename table tmp as"+tablename+"..."
    sql = "ALTER TABLE tmp RENAME TO " + tablename
    cursor.execute(sql)
    print "rename done!"

    print "add key..."
    sql = "ALTER TABLE " + tablename + " ADD PRIMARY KEY (`uid`,`time`)"
    cursor.execute(sql)
    print "key added done!"

    print "succeed!"


db = connectdb()
for i in range(1,200):
    fun("userlifestream_"+str(i))

print "all done!"

请注意转义符号的使用··,尤其是在sql语句GROUP 等

还有增加联合主键:没有转意字符会报错

转义操作符是键盘上~键对应的

print "add key..."
sql = "ALTER TABLE " + tablename + " ADD PRIMARY KEY (`uid`,`time`)"
cursor.execute(sql)
print "key added done!"

【ZZULIOJ】郑州轻工业大学oj题解整合 写在前面 关于ZZULIOJ题解 学习编程,想要巩固无非就是刷题或者做项目,然后因为我大一开始是刷郑轻的题目,就想着自己整合一下自己写的题目。既是复习也是笔记吧。 题解(内有题目描述) 1000 整数a+b 1001 植树问题 1002 简单多项式求值 1003 两个整数的四则运算 1004 三位数的数位分离 1005 整数幂 1006 求等差数列的和 1007 鸡兔同笼 1008 美元和人民币 1009 求平均分 1010 求圆的周长和面积 1011 圆柱体表面积 1012 求绝对值 1013 求两点间 阅读详情

相关推荐

激光测距仪DIY指南:从元器件选型到精度优化(附避坑清单)

本文提供了一份详尽的激光测距仪DIY实战指南,涵盖从核心元器件选型到系统集成的全过程。重点解析了相位法测距原理,并分享了激光发射器与APD探测器选型、信号链路设计、低成本改造方案以及精度校准等关键环节的避坑经验,帮助电子爱好者与开发者深入理解并成功搭建高精度测距系统。

h6i7j8的博客 944

MySQL 数据库去重处理(小白)

MySQL重复数据处理

moke_lee的专栏 563

CAN XL和10Base-T1S全对比:在区域架构中如何选择最适合的车载通信协议?

本文深入对比了CAN XL和10Base-T1S在车载网络架构中的性能差异,通过实测数据和典型应用场景分析,为区域架构设计提供选型指南。重点探讨了带宽、延迟、成本等关键指标,帮助工程师在ADAS传感器部署和车身控制网络优化中做出明智选择。

pear55的博客 595

Python如何去除重复数据?

众所周知,Python是一门强大的编程语言,可以进行数据抓取、数据分析等,能帮助我们高效地处理数据。pandas是Python中一种常用的数据处理库,可以方便地进行数据清洗、转换、分析等操作。我们可以将要去重的数据转换为集合,然后再转换为列表,即可去除重复数据。Python中的字典使用了hash表来实现,因此可以利用字典的特性进行去重操作。输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]1、使用set()函数去重。

oldboyedu1的博客 5605

软件测试学习笔记(二)图覆盖

软件测试学习笔记(二)图覆盖 课程链接软件测试_中国大学MOOC 2.1 测试中的图 2.2 图覆盖准则 1、什么是图? 点的集合和边的集合。点或者结点,有穷非空的集合。边是点对。 2、图为什么在软件测试中具有重要地位? 所谓软件测试就是将软件变作一张图,然后覆盖它,不仅仅是软件,图更是计算机科学重要的结构。 3、软件测试中的图是如何得到的? 常见的图可以来自源代码,常见的是控制流图,还有各种各样...

DZFinder的博客 1420

OSCP-1-3-natraj(本地文件包含、日志中毒、apache2配置漏洞、nmap提权)

像往常一样,我们将使用“Netdiscover”工具识别主机的 IP。所以,让我们首先用 nmap 列出所有 TCP 端口。我们从访问web服务(80端口)开始,在那里我们找到了几张关于Natraj的图片和信息,我们将查看源代码和robots.txt,似乎没有什么有用的。(或至少,目前)。因此,让我们继续进行。在 Dirb 及其默认字典的帮助下,我们找到了一个名为“”的目录。我们进入并列出一个名为“”的文件:如果我们执行它,我们会看到它什么也不做。我们可能需要添加其他内容。

墨痕诉清风的博客 529

python的sqlite数据库内数据去重处理

Python的sqlite数据库内数据去重处理

weixin_41057149的博客 1811

RK3588 部署 YOLO26 目标检测:从训练到 NPU 推理

如果做垂直场景(工业缺陷、农作物、特定零件),需要自己标数据。采集图像(500+ 张,覆盖不同光照/角度)→ 筛选(删除模糊/无目标)→ LabelImg 标注(选择 YOLO 格式)→ 划分(train:val:test = 7:2:1)labelImg├── train/├── val/├── test/YOLO26 在 RK3588 上的全流程是 PC 端训练 + ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。

m0_71589036的博客 110

python--如何进行去重

解析思路: 1、确定去重目标 2、给一个空列表去接收去重后的元素 3、遍历需要去重的序列,将重复数据过滤 4、打印去重后的数据 输出结果: 二、内置函数去重 输出结果: 可以看出去重后改变了序列的顺序,所以去重后需要按元素索引进行排序,才会保持序列的原有顺序代码如下: 输出结果:...

weixin_44688529的博客 2万+

数字后端:版图基础seal ring

seal ring结构是为了防止划片或封装对芯片造成破坏,从而在芯片与划片道(scribe line)之间添加的一圈保护环

m0_61544122的博客 1万+

Unity大世界流式加载:工业级架构与优化秘籍

游戏大厂Unity大世界流式加载框架全景解析:从《原神》《和平精英》等标杆案例出发,深入剖析工业级流式加载的完整技术架构。文章系统介绍了大世界分区块管理、异步加载机制、资源优化策略、多平台适配方案,以及业务联动与团队协作流程。重点阐述了Addressable与AssetBundle应用、空间触发器设计、性能自适应等核心技术,并展望AI预测加载、云游戏等未来方向。全面展现了大厂如何通过流式加载技术实现无缝开放世界体验的技术路径与实践经验。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 607

Python程序中配置代理信息示例

requests #! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "http://httpbin.org/ip" # 要访问的目标HTTPS页面 # targetUrl = ...

weixin_33971130的博客 555

解决Gradle中NPM命令失效问题

摘要:本文分析了IntelliJ IDEA中Gradle执行npm命令失败的问题,报错显示"npm"文件不存在。通过确认npm安装路径、检查系统PATH与Gradle环境的差异,提出两种解决方案:1) 在build.gradle中使用npm绝对路径;2) 通过launchctl修改用户PATH。实例展示了如何修改Gradle脚本或系统配置来解决该问题,指出跨平台开发中环境变量配置的重要性。文章为开发者提供了处理类似问题的实用方法。

2501_90323865的博客 90

Python操作Mysql之追加写入Dataframe到数据库(Python/Mysql/去重更新)

本文主要实现利用Python向Mysql数据按主键去重追加写入更新数据,写入数据源为Dataframe类型,可用于爬虫等需要去重追加更新数据的场景。 本文参考网络上相关写入Mysql的代码并作出以下几点优化: 无需指定需要写入的列名称 变量名称均用``括起,解决部分特殊变量名引起的报错 将整个追加写入过程包装成了外部工具类,仅需简单引用即可解决数据追加写入的问题 #!/usr/bin/env python # -*- coding:utf-8 -*- import os import pymysq.

lzykevin的博客 4451

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用Python实现MySQL数据库的查询,有录播直播私教课视频教程

实现常用的查询功能

未来已来,AI时代,学AI编程,做AI量化,就来大鹏AI教育。 761

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

利用Redis进行数据去重

前言 之前有篇文章提到了实现增量爬虫可以利用redis数据库进行url去重,今天博主就给大家分享一下python如何利用redis进行去重吧。在试验中,我们用到Redis数据库和hash算法,我们先了解一下Redis和hashlib。 Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 优势 读写速度极快,Redis能读的速度是11...

weixin_42494845的博客 6452

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python对文件内容的去重

python对文件内容的去重 文章目录python对文件内容的去重前言实现步骤总结 前言 很多时候我们获取的数据存在大量重复,重复数据在进一步处理时会降低处理效率,且可能导致错误,因此内容去重是数据处理一个重要步骤。 实现步骤 通过list的set()和sort()函数对于数据进行顺序去重,读取文件夹中的所有文件,生成文件列表,读取文件内容列表,进行去重和按原索引顺序排序。 首先我们需要将所有需要去重的文件列举出来,通过os库的walk()函数可以获取路径下的所有文件和路径名 import os d

bjwhile的博客 2883

python连接mongodb数据库_python连接、操作mongodb数据库的方法实例详解

本文实例讲述了python连接、操作mongodb数据库的方法。分享给大家供大家参考,具体如下:数据库连接from pymongo import MongoClientimport pandas as pd#建立MongoDB数据库连接client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:...

weixin_39989384的博客 1059

mongodb修改数据语句_【S01E03】Pymongo操作mongoDB数据库

数据在MongoDB中是按照"库(Database)"——"集合(collections)"——"文档(Document)"的层级关系来存储的。如果使用Python的数据结构来做类比的话:文档相当于一个字典;集合相当于一个包含了很多字典的列表;库相当于一个大字典,大字典里面的每一个键值对都对应了一个集合,Key为集合的名字,Value就是一个集合。I. 初始化连接对象 II. 指定(建...

weixin_39901571的博客 348

pymongo查询列表元素_【S01E03】Pymongo操作mongoDB数据库

数据在MongoDB中是按照"库(Database)"——"集合(collections)"——"文档(Document)"的层级关系来存储的。如果使用Python的数据结构来做类比的话:文档相当于一个字典;集合相当于一个包含了很多字典的列表;库相当于一个大字典,大字典里面的每一个键值对都对应了一个集合,Key为集合的名字,Value就是一个集合。I. 初始化连接对象II. 指定(建立)...

weixin_35775446的博客 171

使用Python给Mysql数据库表去重以及排序

1

suibianlasa的博客 4109

Python进行数据的多表去重示例

1、Python集合及其交并差操作 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.   sets 支持 x in set, len(set),和 for x in set。作为

BabyFish13 2448

护网IP去重,去白名单

ip去重

不爱缺氧i的博客 563

python连接、操作mongodb数据库

数据库连接 from pymongo import MongoClient import pandas as pd #建立MongoDB数据库连接 client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:27101/") #连接所需数据库,testDatabase为数据库名: db=...

950

Python进阶技巧之利用break和哈希算法优化数据库批量操作

break的双重身份:它既是循环的终结者,也是异常流程的刹车片。在上述代码中,一旦写入失败,break立即介入,防止错误数据不断累积。哈希的前置校验:将冲突检测从数据库层(慢)前移到应用层(快),利用内存 Set 或预查询,极大提升了同步效率。

tomatop的博客 21

python入门012~Python3零基础入门~把爬取到的数据存到数据库,带数据库去重功能

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套

2401_84140080的博客 361
上一篇: Python print函数重定向
下一篇: Mysql解决The total number of locks exceeds the lock table size错误
相国大人
博客等级 码龄10年 1009粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值