crontab не запускает скрипт webscraping - PullRequest
0 голосов
/ 21 апреля 2020

Мне удалось без проблем запустить веб-скребок в командной строке, и он может создать нужный файл CSV, который я хочу, но когда я пытаюсь запустить его через crontab, он не воспроизводит обновленные или новые CSV-файл в папке назначения. Я могу запускать другие скрипты в crontab (например, отправляю по электронной почте сам желаемый файл csv после ручного запуска отдельного кода для создания веб-страниц), но кажется, что crontab не может запустить webscraper. Скребок для запуска занимает менее 2 минут. У crontab есть ограничение по времени или есть что-то, чего мне не хватает?

Кроме того, в настоящее время я запускаю Ubuntu на Raspberry Pi 3.

Вот crontab:

* * * * cd ~/Desktop/webscraperfiles && /usr/bin/python3 PrimaryarmsOPTICS.py

Вот сценарий веб-скребка:

import requests
import csv

apiLink = "https://www.primaryarms.com/api/items?1=Scopes&MCategories=Optics&c=3901023&country=US&currency=USD&facet.exclude=custitem_1%2Ccustitem_2%2Ccustitem_accessory_attachment%2Ccustitem_action%2Ccustitem_adjustable%2Ccustitem_ambidextrous%2Ccustitem_armor_type%2Ccustitem_assembly%2Ccustitem_barrel_length%2Ccustitem_brand%2Ccustitem_bullet_weight%2Ccustitem_caliber_gauge%2Ccustitem_caliber_marking%2Ccustitem_carrier_style%2Ccustitem_color%2Ccustitem_decibel_reduction%2Cpricelevel2%2Cpricelevel6%2Cpricelevel7%2Ccustitem_fitment%2Ccustitem_fixed_folding%2Ccustitem_focal_plane%2Ccustitem_forward_cant%2Ccustitem_frame_size%2Ccustitem_gas_system_length%2Ccustitem_illuminated%2Ccustitem_in_stock%2Ccustitem_latch_size%2Ccustitem_leg_style%2Cpricelevel10%2Ccustitem_magnification%2Ccustitem_material%2Ccustitem_night_vision_compatible%2Cpricelevel5%2Ccustitem_optic_type%2Ccustitem_pa_featured_products%2Ccustitem_pa_staff_picks%2Ccustitem_pa_top_selling%2Ccustitem_padded%2Ccustitem_platform%2Ccustitem_position%2Cpricelevel%2Ccustitem_quick_release%2Ccustitem_ring_height%2Ccustitem_size%2Ccustitem_storage%2Ccustitem_style%2Ccustitem_thread_pattern%2Ccustitem_throw%2Ccustitem_tube_diameter%2Ccustitem_type%2Citemtype%2Ccustitem_user_serviceable%2Conlinecustomerprice&fieldset=search&include=facets&language=en&limit=12&n=2&offset=0&pricelevel=5&sort=custitem_ranking_score%3Adesc"

next_page = True
count = 0
with open("PrimaryarmsOPTICS.csv",'a+',newline="") as outFile:
    while next_page:
            print(f"Now Scraping please wait...")
            writer = csv.writer(outFile)
            data = requests.get(apiLink)
            data = data.json()
            items = data['items']
            for item in items:
                name = item['pagetitle']
                url = "https://www.primaryarms.com/"+item['urlcomponent']
                try:
                    imageLink = item['itemimages_detail']['urls'][0]['url']
                except:
                    imageLink = list(item['itemimages_detail'].keys())
                    key = imageLink[0]
                    imageLink = item['itemimages_detail'][key]['url']
                price = item['onlinecustomerprice_detail']['onlinecustomerprice_formatted']
                writer.writerow([name,url,imageLink,price])

            try:
                apiLink=data['links'][count]['href']
                if count == 0:
                    count =1
            except:
                print("Pages Ended")
                break

Вот сценарий, который я видел, наблюдая за выполнением кода:

Apr 20 20:12:01 jaredlewisdesktop postfix/local[14628]: B812160AD8: to=<jaredlewis@jaredlewisdesktop>, orig_to=<jaredlewis>, relay=local, delay=0.23, delays=0.16/0.04/0/0.03, dsn=2.0.0, status=sent (delivered to mailbox)
Apr 20 20:12:01 jaredlewisdesktop postfix/qmgr[8987]: B812160AD8: removed
...