最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 爬蟲(chóng) 實(shí)現(xiàn)增量去重和定時(shí)爬取實(shí)例

 更新時(shí)間:2020年02月28日 07:41:49   作者:X_Special  
今天小編就為大家分享一篇python 爬蟲(chóng) 實(shí)現(xiàn)增量去重和定時(shí)爬取實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

本文作者同開(kāi)源中國(guó)(殊途同歸_);

解決思路:

1.獲取目標(biāo)url

2.解析網(wǎng)頁(yè)

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

4.異常處理

5.實(shí)時(shí)更新(定時(shí)爬?。?/p>

下面為數(shù)據(jù)庫(kù)的配置 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
 

接下來(lái)是主要代碼 test.py:

# 使用bs4進(jìn)行網(wǎng)頁(yè)解析
# 實(shí)現(xiàn)了增量去重
# 實(shí)現(xiàn)了定時(shí)爬取
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('期號(hào):%s\t時(shí)間:%s\t號(hào)碼:%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 爬蟲(chóng) 實(shí)現(xiàn)增量去重和定時(shí)爬取實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中l(wèi)ambda表達(dá)式的用法示例小結(jié)

    Python中l(wèi)ambda表達(dá)式的用法示例小結(jié)

    本文主要展示了一些lambda表達(dá)式的使用示例,通過(guò)這些示例,我們可以了解到lambda表達(dá)式的常用語(yǔ)法以及使用的場(chǎng)景,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • python實(shí)現(xiàn)簡(jiǎn)易內(nèi)存監(jiān)控

    python實(shí)現(xiàn)簡(jiǎn)易內(nèi)存監(jiān)控

    這篇文章主要介紹了python實(shí)現(xiàn)簡(jiǎn)易內(nèi)存監(jiān)控,每隔3秒獲取系統(tǒng)內(nèi)存,當(dāng)內(nèi)存超過(guò)設(shè)定的警報(bào)值時(shí),獲取所有進(jìn)程占用內(nèi)存并發(fā)出警報(bào)聲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 把pandas轉(zhuǎn)換int型為str型的方法

    把pandas轉(zhuǎn)換int型為str型的方法

    今天小編就為大家分享一篇把pandas轉(zhuǎn)換int型為str型的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python畫(huà)圖時(shí)linestyle,color和loc參數(shù)的設(shè)置方式

    python畫(huà)圖時(shí)linestyle,color和loc參數(shù)的設(shè)置方式

    這篇文章主要介紹了python畫(huà)圖時(shí)linestyle,color和loc參數(shù)的設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python實(shí)現(xiàn)確認(rèn)字符串是否包含指定字符串的實(shí)例

    Python實(shí)現(xiàn)確認(rèn)字符串是否包含指定字符串的實(shí)例

    下面小編就為大家分享一篇Python實(shí)現(xiàn)確認(rèn)字符串是否包含指定字符串的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python繪圖之柱形圖繪制詳解

    Python繪圖之柱形圖繪制詳解

    這篇文章主要介紹了Python繪圖之柱形圖繪制詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 淺談python拋出異常、自定義異常, 傳遞異常

    淺談python拋出異常、自定義異常, 傳遞異常

    本文給大家簡(jiǎn)單匯總了下Python中拋出異常、自定義異常,傳遞異常的簡(jiǎn)單應(yīng)用,有需要的小伙伴可以參考下
    2016-06-06
  • tensorflow estimator 使用hook實(shí)現(xiàn)finetune方式

    tensorflow estimator 使用hook實(shí)現(xiàn)finetune方式

    今天小編就為大家分享一篇tensorflow estimator 使用hook實(shí)現(xiàn)finetune方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)

    Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)

    在機(jī)器視覺(jué)領(lǐng)域的深度學(xué)習(xí)中,很多數(shù)據(jù)集的標(biāo)注文件使用RLE的格式。但是神經(jīng)網(wǎng)絡(luò)的輸入一定是一張圖片,為此必須把RLE格式的文件轉(zhuǎn)變?yōu)閳D像格式。本文將利用Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn),感興趣的可以了解一下
    2022-08-08
  • python 利用opencv實(shí)現(xiàn)圖像網(wǎng)絡(luò)傳輸

    python 利用opencv實(shí)現(xiàn)圖像網(wǎng)絡(luò)傳輸

    這篇文章主要介紹了python 如何利用opencv實(shí)現(xiàn)圖像網(wǎng)絡(luò)傳輸,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論

甘洛县| 牟定县| 大足县| 日喀则市| 湖南省| 龙南县| 澎湖县| 林周县| 上杭县| 保定市| 来安县| 女性| 墨脱县| 佳木斯市| 云安县| 龙胜| 灯塔市| 邻水| 延长县| 饶河县| 望江县| 珠海市| 清河县| 洛阳市| 义乌市| 汉川市| 洞头县| 松阳县| 万年县| 仪征市| 寻甸| 锦屏县| 湟中县| 博乐市| 理塘县| 永修县| 蓬溪县| 桓台县| 固阳县| 沈丘县| 容城县|