亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 爬蟲 實現增量去重和定時爬取實例

發布時間:2020-09-22 16:06:04 來源:腳本之家 閱讀:123 作者:X_Special 欄目:開發技術

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

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

解決思路:

1.獲取目標url

2.解析網頁

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

4.異常處理

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

下面為數據庫的配置 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進行網頁解析
# 實現了增量去重
# 實現了定時爬取
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 已經存在!' % 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 爬蟲 實現增量去重和定時爬取實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南平市| 绥德县| 嫩江县| 库车县| 姜堰市| 句容市| 克拉玛依市| 石柱| 若尔盖县| 双桥区| 苏尼特左旗| 西乌珠穆沁旗| 新巴尔虎右旗| 公主岭市| 镇安县| 万载县| 昭平县| 新宾| 郎溪县| 项城市| 乃东县| 九龙城区| 金寨县| 虎林市| 旌德县| 淮安市| 怀化市| 奉节县| 新余市| 芮城县| 沧源| 鹿泉市| 大方县| 临高县| 孝感市| 衡东县| 舒城县| 嵩明县| 双城市| 清远市| 莎车县|