cndotaercrazybm 2021-06-28 08:01 采纳率: 85.7%
浏览 24
已采纳

在windows系统内使用php中调用Python文件,路径怎么写返回都为空array。

直接上代码,PHP中函数是这么写的

public function product()
    {

        //接受数据,检测参数
        $params = input();
        //测试返回内容
        //return json($params);
        //检测参数是否为空
//        $validata = $this->validate($params,[
//            'product|商品名' => 'require|length:1,20',
//        ]);
//        if ($validata !==true){
//            $this->error($validata);
//        }
//        //参数加密
////        $params['password'] = encrypet_password($params['password']);
        $product = $params['product'];
        $py_file = "C:/Users/Administrator/PycharmProjects/jd_crawler/test.py";
        $py_exe = "C:/Program Files/JetBrains/Python/python.exe";
//        return $product;
        exec("$py_exe $py_file $product",$out);
        print_r($out);


    }

参数通过测试可以正常返回,但是调用py文件后,不管怎么改,返回都为空,我该怎么测试是否调用了文件?

这是测试的py文件代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
import time
import pymysql
from db import insert_or_update
from db import connect
import sys

def get_goods(driver):
    try:
        goods = driver.find_elements_by_class_name('gl-item')
        for good in goods:
            detail_url = good.find_element_by_tag_name('a').get_attribute('href')
            p_name = good.find_element_by_css_selector('.p-name em').text.replace('\n', '')
            price = good.find_element_by_css_selector('.p-price i').text
            p_commit = good.find_element_by_css_selector('.p-commit a').text
            msg = '''
            商品 : %s
            链接 : %s
            价钱 :%s
            评论 :%s
            ''' % (p_name, detail_url, price, p_commit)
            sku = "'" + p_name + "'"
            url = "'" + detail_url + "'"
            price = "'" + price + "'"
            commit = "'" + p_commit + "'"
            print(msg, end='\n\n')
            # print(datalist)
            sql = "insert into s_product_base(sku,price,commit,url)value(" + sku + ',' + price + ',' + commit + ',' + url + ")";
            connect()  # 连接数据库,嵌套函数
            insert_or_update(sql)  # 插入数据
        button = driver.find_element_by_partial_link_text('下一页')
        button.click()
        time.sleep(1)
        get_goods(driver)
    except Exception as e:
        print(e)
        pass

def spider(url, keyword):
    driver = webdriver.Chrome()
    driver.get(url)
    driver.implicitly_wait(3)  # 使用隐式等待
    try:
        input_tag = driver.find_element_by_id('key')
        input_tag.send_keys(keyword)
        input_tag.send_keys(Keys.ENTER)
        get_goods(driver)
    finally:
        driver.close()


if __name__ == '__main__':
    key = sys.argv[1]
    print(key)
    spider('https://www.jd.com/', keyword=key)

展开全部

  • 写回答

1条回答 默认 最新

  • 江天暮雪丨 2021-06-29 00:47
    关注

    你这个py文件执行的结果是插入数据到数据库中,你去检查下数据库有没有新数据就知道了呀

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 不能对数据库增删改但是可以查询
  • ¥15 在触控设备上启动TabTip.exe打不开键盘界面,怎么用代码启动进程打开界面
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
  • ¥15 (标签-stm32|关键词-m3)
  • ¥15 matlab中频率调制法代码的解读
  • ¥15 ceph的对象、块、文件相关问题求解答
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部