日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql 去重con_python 爬虫 实现增量去重和定时爬取实例

發(fā)布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 去重con_python 爬虫 实现增量去重和定时爬取实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言: 在爬蟲過程中,我們可能需要重復(fù)的爬取同一個網(wǎng)站,為了避免重復(fù)的數(shù)據(jù)存入我們的數(shù)據(jù)庫中 通過實現(xiàn)增量去重 去解決這一問題 本文還針對了那些需要實時更新的網(wǎng)站 增加了一個定時爬取的功能;

本文作者同開源中國(殊途同歸_);

解決思路:

1.獲取目標url

2.解析網(wǎng)頁

3.存入數(shù)據(jù)庫(增量去重)

4.異常處理

5.實時更新(定時爬取)

下面為數(shù)據(jù)庫的配置 mysql_congif.py:

import pymysql

def insert_db(db_table, issue, time_str, num_code):

host = '127.0.0.1'

user = 'root'

password = 'root'

port = 3306

db = 'lottery'

data_base = pymysql.connect(host=host, user=user, password=password, port=port, db=db)

cursor = data_base.cursor()

try:

sql = "INSERT INTO %s VALUES ('%s','%s','%s')" % (db_table, issue, time_str, num_code)

cursor.execute(sql)

data_base.commit()

except ValueError as e:

print(e)

data_base.rollback()

finally:

cursor.close()

data_base.close()

def select_db(issue, db_table):

host = '127.0.0.1'

user = 'root'

password = 'root'

port = 3306

db = 'lottery'

data_base = pymysql.connect(host=host, user=user, password=password, port=port, db=db)

cursor = data_base.cursor()

try:

sql = "SELECT '%s' FROM %s " % (issue, db_table)

cursor.execute(sql)

data_base.commit()

except ValueError as e:

print(e)

data_base.rollback()

finally:

return issue

接下來是主要代碼 test.py:

# 使用bs4進行網(wǎng)頁解析

# 實現(xiàn)了增量去重

# 實現(xiàn)了定時爬取

import datetime

import time

from bs4 import BeautifulSoup

import requests

from mysql_config import insert_db

from mysql_config import select_db

def my_test():

db_table = 'lottery_table'

url = 'http://kj.13322.com/kl10_dkl10_history_dtoday.html'

res = requests.get(url)

content = res.content

soup = BeautifulSoup(content, 'html.parser', from_encoding='utf8')

c_t = soup.select('#trend_table')[0]

trs = c_t.contents[4:]

for tr in trs:

if tr == '\n':

continue

tds = tr.select('td')

issue = tds[1].text

time_str = tds[0].text

num_code = tr.table.text.replace('\n0', ',').replace('\n', ',').strip(',')

print('期號:%s\t時間:%s\t號碼:%s' % (str(issue), str(time_str), str(num_code)))

issue_db = select_db(issue, db_table)

try:

if issue_db == issue:

insert_db(db_table, issue_db, time_str, num_code)

print('添加%s到%s成功' % (issue_db, db_table))

except Exception as e:

print('%s 已經(jīng)存在!' % issue_db)

print(e)

if __name__ == '__main__':

flag = 0

now = datetime.datetime.now()

sched_time = datetime.datetime(now.year, now.month, now.day, now.hour, now.minute, now.second) +\

datetime.timedelta(seconds=3)

while True:

now = datetime.datetime.now()

if sched_time < now:

time.sleep(3)

print(now)

my_test()

flag = 1

else:

if flag == 1:

sched_time = sched_time + datetime.timedelta(minutes=2)

flag = 0

以上這篇python 爬蟲 實現(xiàn)增量去重和定時爬取實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持python博客。

總結(jié)

以上是生活随笔為你收集整理的mysql 去重con_python 爬虫 实现增量去重和定时爬取实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。