首页 > 解决方案 > 比较本地文件中的数字,如果数字高于本地文件,则覆盖

问题描述

我正在尝试将本地文件中的数字与我正在抓取的数字进行比较。我的独特问题是我不知道如何读取文件并将其与我拥有的数字进行比较。其他一切正常。

我的代码:

all_div = driver.find_elements_by_xpath("//div[@class='im_message_outer_wrap hasselect']")
for x in range(0,len(all_div)):
    idMessage = all_div[x].get_attribute('data-msg-id')
    if idMessage > open('idMessage.js', 'r'):
        all_div[x].click()
        fp = open('idMessage.js', 'w')
        fp.writelines(idMessage)   

错误:

TypeError: '>' not supported between instances of 'str' and '_io.TextIOWrapper'

json文件里面的内容:

207

注意:当 FOR 循环比他大时,json 文件中的数字总是会改变。
该文件是 json 文件,但如有必要,我可以将其替换为 .txt 或任何其他扩展名而不会出现问题。

标签: pythonjsonweb-scraping

解决方案


你可以试试这个来读取 js 文件。

# first read data from the js file
f = open('idMessage.js', 'r')
p = f.readline()
f.close()

all_div = driver.find_elements_by_xpath("//div[@class='im_message_outer_wrap hasselect']")
for x in range(0,len(all_div)):
    idMessage = all_div[x].get_attribute('data-msg-id')

    # use data from js file here
    if int(idMessage) > int(p.strip()):      
        all_div[x].click()
        fp = open('idMessage.js', 'w')
        fp.writelines(idMessage) 

推荐阅读