python - MAC | Python 脚本运行良好,在终端插入 Mysql 表但无法作为 Cron 作业运行 |苹果

标签 python mysql beautifulsoup cron pymysql

很高兴有人能提供帮助。

python 脚本 (a.py) 从终端插入 Mysql (mydatabase/table1) 时运行良好,但 mysql (mydatabase/table1) 在作为 cron 作业运行时无法插入或更新。

a.py解析documents目录下所有*.htm文件,结果lst_url插入mydatabase/table1字段lst_url。

a.py 位于 documents 目录下。

cron 作业是 * * * * * documents/a.py

提前致谢。

a.py
-------------------------------------------------
import time
from bs4 import BeautifulSoup
from datetime import datetime
import pymysql
import glob
import os

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',passwd='XXXXXXXX',db='mysql', charset='utf8')
cur=conn.cursor()
cur.execute("USE mydatabase")

for page in glob.glob('documents/*.htm'):

    with open(page) as html_file:
        soup = BeautifulSoup(html_file, 'lxml')

    try:
        with conn.cursor() as cursor:
            for item in soup.find_all('div',class_='listing_info'):
                lst_url= item.find('a', href=re.compile(r'[/]([a-z]|[A-Z])\w+')).attrs['href'

                sql="INSERT INTO mydatabase.table1(lst_url) VALUES (%s)"
                cur.execute(sql,(lst_url))

        conn.commit()
    finally:
        #conn.close()
        print("Done")

最佳答案

Cron 可能在不同的 Python 版本/环境中运行它。我会按照 Spinor8 和 Dan-Dev 所说的去做,我会解释原因。

正如 Spinor8 所说,您可以在程序开头记录 python verison。 Here's a great link explaining how.

正如 Dan-Dev 所说,您应该定义要与 shebang 一起使用的 python 的路径。

关于python - MAC | Python 脚本运行良好,在终端插入 Mysql 表但无法作为 Cron 作业运行 |苹果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51800216/

相关文章:

python - JAX/JIT 与标准 Numpy 性能 : where I am wrong?

python - 继续追加到列表中,直到达到字符数

python - Django CSRF 验证失败。网络钩子(Hook)支付系统

python - 谷歌合作实验室: Access Denied You don't have permission to access "website" on this server

python - 如何制作表分区?

安卓 : take Data in ListView

php - 所见即所得的 HTML/CSS 生成器

php - 如何使用 PHP 检查 MySQL 数据库中的 10 个最新条目是否以字符串开头?

python - 合并 2 个字典并将它们存储在 pandas 数据框中,其中一个字典具有可变长度列表元素

python - 在 HTML 中查找和替换字符串