Мне удалось без проблем запустить веб-скребок в командной строке, и он может создать нужный файл 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¤cy=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