51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1084|回复: 4
打印 上一主题 下一主题

程序使用了大量的/tmp空间

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2022-5-30 11:25:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点

    我有一个Ubuntu linux 的服务器我想在上面每小时运行我的爬虫程序(用到了selenium chromedriver).程序会打开不同产品网页(大约1p00个),输入不同的邮编(100个)然后爬取价格。
    但当我在服务器上运行几个小时后,服务器的人联系我说我的运行程序消耗了大量的 /tmp 空间( free space: / 3765 MB (53% inode=70%): /home 699 MB (81% inode=99%): /opt 1169 MB (43% inode=99%): /tmp 25 MB (1% inode=55%): /usr/local 819 MB (95% inode=99%): /var 5957 MB (78% inode=99%):)。请问这是怎么回事

    这是我的代码:

    1. data = read_csv("C:\\Users\\12987\\desktop\\zipcode\\zc.csv")
    2. # converting column data to list
    3. zipCodeList = data['Zipcode'].tolist()

    4. while(True):
    5.     AArray = []

    6.     def ScrapingTarget(url):
    7.         wait_imp = 10
    8.         CO = webdriver.ChromeOptions()
    9.         CO.add_experimental_option('useAutomationExtension', False)
    10.         CO.add_argument('--ignore-certificate-errors')
    11.         CO.add_argument('--start-maximized')
    12.         wd = webdriver.Chrome(r'D:\chromedriver\chromedriver_win32new\chromedriver_win32 (2)\chromedriver.exe',options=CO)
    13.         wd.get(url)
    14.         wd.implicitly_wait(wait_imp)

    15.         for zipcode in zipCodeList:
    16.             # click the My Store
    17.             myStore = wd.find_element(by=By.XPATH, value="//*[@id='web-store-id-msg-btn']/div[2]/div")
    18.             myStore.click()
    19.             sleep(0.5)

    20.             #input ZipCode
    21.             inputZipCode = wd.find_element(by=By.XPATH, value="//*[@id='zip-or-city-state']")
    22.             inputZipCode.clear()
    23.             inputZipCode.send_keys(zipcode)

    24.             #click lookup
    25.             clickLoopUP = wd.find_element(by=By.XPATH, value="//*[@id='overlay-1']/div[2]/div[1]/div/div[3]/div[2]/button")
    26.             clickLoopUP.click()
    27.             sleep(0.5)

    28.             #choose Store
    29.             store = wd.find_element(by=By.XPATH, value="//*[@id='overlay-1']/div[2]/div[3]/div[2]/div[1]/button")
    30.             store.click()

    31.             #start scraping
    32.             name = wd.find_element(by=By.XPATH, value="//*[@id='pageBodyContainer']/div[1]/div[1]/h1/span").text
    33.             #nameArray.append(name)

    34.             price = wd.find_element(by=By.XPATH, value="//*[@id='pageBodyContainer']/div[1]/div[2]/div[2]/div/div[1]/div[1]/span").text
    35.             #priceArray.append(price)

    36.             currentZipCode = zipcode
    37.             #zipCodeArray.append(currentZipCode)

    38.             tz = pytz.timezone('Europe/London')
    39.             GMT = datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
    40.             #GMTArray.append(GMT)

    41.             # needed to click onto the "Show more" to get the tcin and upc
    42.             xpath = '//*[@id="tabContent-tab-Details"]/div/button'
    43.             element_present = EC.presence_of_element_located((By.XPATH, xpath))
    44.             WebDriverWait(wd, 5).until(element_present)
    45.             showMore = wd.find_element(by=By.XPATH, value=xpath)
    46.             sleep(2)
    47.             showMore.click()
    48.             soup = BeautifulSoup(wd.page_source, 'html.parser')
    49.             # gets a list of all elements under "Specifications"
    50.             div = soup.find("div", {"class": "styles__StyledCol-sc-ct8kx6-0 iKGdHS h-padding-h-tight"})
    51.             list = div.find_all("div")
    52.             for a in range(len(list)):
    53.                 list[a] = list[a].text
    54.             # locates the elements in the list
    55.             tcin = [v for v in list if v.startswith("TCIN")]
    56.             upc = [v for v in list if v.startswith("UPC")]
    57.             #TCIN.append(tcin)
    58.             #UPC.append(upc)

    59.             #scroll up
    60.             #wd.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)
    61.             wd.find_element(by=By.TAG_NAME, value='body').send_keys(Keys.CONTROL + Keys.HOME)

    62.             AArray.append([name, price, currentZipCode, tcin, upc, GMT])


    63.     with concurrent.futures.ThreadPoolExecutor(10) as executor:
    64.          executor.map(ScrapingTarget, urlList)

    65.     with open(r'C:\Users\12987\PycharmProjects\python\Network\priceingAlgoriCoding\export_Target_dataframe.csv',
    66.               'a', newline="", encoding='utf-8') as f:
    67.         writer = csv.writer(f)
    68.         writer.writerows(AArray)

    69.     sleep(3600)
    复制代码

    我觉得driver.quit()和driver.close()可能会有用但不敢尝试
    希望能顺利每小时都运行这个程序


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 669 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2022-5-31 10:10:23 | 只看该作者
    需要quit
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 1522 天

    连续签到: 1 天

    [LV.Master]测试大本营

    3#
    发表于 2022-5-31 10:29:10 | 只看该作者
    文件位置写到其他盘
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 2819 天

    连续签到: 1 天

    [LV.Master]测试大本营

    4#
    发表于 2022-5-31 13:37:31 | 只看该作者
    看看缓存或者用什么了
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2022-5-31 15:16:54 | 只看该作者
    quit相对close后,占用内存会少点吧?
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 10:56 , Processed in 0.069807 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表