爬虫爬取到的数据都是过去的日期和数据

问题遇到的现象和发生背景

为什么爬虫爬取到的数据都是过去的日期和数据

用代码块功能插入代码,请勿粘贴截图
from selenium import webdriver
import re
import pymysql

chrome_options = webdriver.ChromeOptions()
# chrome_options.add_argument('--headless')
browser = webdriver.Chrome(options=chrome_options)
def sina(stock):
    #1 获取股价数据
    url='http://finance.sina.com.cn/realstock/company/'+stock+'/nc.shtml'
    browser.get(url)
    data = browser.page_source
    # print(data)
    # browser.quit()

    
    p_price = '<div id="price" class=".*?">(.*?)</div>'
    price = re.findall(p_price, data)[0]
    p_ctime = '<div class="time blue_d" id="hqTime">(.*?)</div>'
    ctime = re.findall(p_ctime, data, re.S)[0].strip()
    
    #print(price)
    #print(ctime[0])

    
    # 2.数据存入数据库及数据去重(参考4.4节和5.1节) 
    db = pymysql.connect(host='localhost', port=3306, user='root', password='', database='pachong', charset='utf8')
    cur = db.cursor()  # 获取会话指针,用来调用SQL语句
    # 2.1 查询数据,为之后的数据去重做准备
    sql_1 = 'SELECT * FROM sina WHERE stock =%s'
    cur.execute(sql_1, stock)
    data_all = cur.fetchall()
    
    if len(data_all)==0:
        sql_2 = 'INSERT INTO sina (stock, price, ctime) VALUES (%s,%s,%s)'  # 编写SQL语句
        cur.execute(sql_2, (stock, price[0], ctime[0]))  # 执行SQL语句
        db.commit()  # 当改变表结构后,更新数据表的操作
    else:
        stock_all = []
        ctime_all = []
        for j in range(len(data_all)):
            stock_all.append(data_all[j][0])
            ctime_all.append(data_all[j][2])
        print(stock_all)
        print(ctime_all)
        # 2.2 判断数据是否在原数据库中,不在的话才进行数据存储
        cctime=ctime[0]
        if (stock not in stock_all) & (cctime not in ctime_all):
            sql_2 = 'INSERT INTO sina (stock, price, ctime) VALUES (%s,%s,%s)'  # 编写SQL语句
            cur.execute(sql_2, (stock, price[0], ctime[0]))  # 执行SQL语句
            db.commit()  # 当改变表结构后,更新数据表的操作
    cur.close()  # 关闭会话指针
    db.close()  # 关闭数据库链接

stocks=['sh000001','sh000002','sh000003','sh000004']

import time

while True:
    for stock in stocks:
        sina(stock)
    time.sleep(10)

运行结果及报错内容

img

我的解答思路和尝试过的方法

我想要达到的结果

想知道为什么会是这样,哪里出了错误?

那个网站不刷新就不更数据?是不是需要先刷新一下再爬

你贴的代码对吗?正则匹配不上啊

那你看网站网页标签里的日期呀,网站如果内容本身是这些日期的话,你拿取下来就这些呀?

你可以设定一个规则,默认从第一个爬取,然后在后台加一个缓存,已经爬取过的,就不用再重复爬了。

img

你这代码真的OK吗 我运行这样才能获取时间
还有你的代码下面红色框是什么操作
我不解,price本身就是价格一个字符串。你为什么要获取price索引0的值
其次你的cctime = crime[0] 为什么下面不直接用cctime 多此一举
其次你的ctime[0]按照我上面跑的也有问题。你是怎么获取出来的

img

嗯,在我认为,应该是需要做一次刷新标签页的动作,以获得最新的动态信息吧

阉割版的还是贴的