本代码可以实现自动爬取蔬菜价格,并发邮件通知自己,可以电脑上设置一个任务计划,让他每天自动获取
变量名 | 类 型 | 静态 | 数组 | 备 注 | p | 产品信息 | | | p_list | 产品信息 | | 0 | 返回 | 文本型 | | | 发送内容table | 文本型 | | | food_names | 文本型 | | 0 | i | 整数型 | | | keyword | 文本型 | | | send_content | 文本型 | | | send_title | 文本型 | | | 邮件返回 | 文本型 | | | 日志 | 类_日志输出 | | | 配置文件名 | 文本型 | | | 配置 | 类_配置项 | | | SendEmail | 文本型 | | | pwd | 文本型 | | | ToEmail | 文本型 | | |
配置文件名 = GetRunPath () + “\app.ini”SendEmail = 配置. 读项文本 (配置文件名, “Email”, “SendEmail”, , )pwd = 配置. 读项文本 (配置文件名, “Email”, “pwd”, , )ToEmail = 配置. 读项文本 (配置文件名, “Email”, “ToEmail”, , ). if (SendEmail = “” 或 pwd = “” 或 ToEmail = “”)fputs (, “邮件信息错误!!!” + #换行符 )return (0 ) fputs (, “开始获取...” + #换行符 )日志. 输出文件 (“开始获取...”, 0, )food_names = { “土豆”, “番茄”, “胡萝卜”, “白菜”, “大葱”, “菜花”, “茄子”, “芸豆”, “芹菜”, “油菜”, “苹果”, “香蕉”, “橙子”, “草莓”, “西瓜”, “火龙果”, “水蜜桃”, “鸭梨”, “芒果”, “五花肉”, “梅花肉”, “纯瘦肉”, “带鱼”, “鲤鱼”, “草鱼”, “胖头鱼”, “东北大米”, “面粉”, “大豆油” }. for (1, GetAryElementCount (food_names ), 1, i )keyword = food_names [i ]fputs (, “搜索:” + keyword + #换行符 )日志. 输出文件 (“搜索:” + keyword, 0, )搜索食品价格 (keyword, p )fputs (, p.p_name + “|” + p.p_price + “|” + p.unitInfo + “|” + p.p_place + “|” + p.publish_date + #换行符 )日志. 输出文件 (p.p_name + “|” + p.p_price + “|” + p.unitInfo + “|” + p.p_place + “|” + p.publish_date + keyword, 0, )AddElement (p_list, p )fputs (, “10秒后搜索下一个” + #换行符 )sleep (1000 × 10 ). next ()send_content = 组装表格 (p_list )send_title = “今日食品价格/” + str (now ()) 邮件返回 = 发送QQ邮件N (SendEmail, pwd, ToEmail, send_title, send_content ). ife (邮件返回 = “ok”)fputs (, “邮件发送成功” + #换行符 )日志. 输出文件 (“邮件发送成功”, 0, ) fputs (, “邮件发送失败!!!” + #换行符 ) 日志. 输出文件 (“邮件发送失败!!!”, 2, ) fputs (, “任务结束” + #换行符 )return (0 ) |
搜索食品价格 | 逻辑型 | | |
keyword | 文本型 | | | | 产品信息 | 产品信息 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | search_url | 文本型 | | | ret_headers | 文本型 | | | post_data | 文本型 | | | ret_json | 文本型 | | | search_content | 文本型 | | | p | 产品信息 | | | cookie | 文本型 | | | json | 类_json | | | prodName | 文本型 | | |
search_url = “http://www.xinfadi.com.cn/getPriceData.html”post_data = “limit=1&prodName=” + UrlEncode (keyword, 真, 真)ret_json = HttpRequestRetTextUtf8Decode (search_url, 1, post_data, cookie, cookie, , , , , , ). ife (json. 解析 (ret_json, , )) p.p_name = json. 取属性 (“list”). 取成员 (0, ). 取通用属性 (“prodName”, )p.p_price = json. 取属性 (“list”). 取成员 (0, ). 取通用属性 (“avgPrice”, ) + “元”p.unitInfo = json. 取属性 (“list”). 取成员 (0, ). 取通用属性 (“unitInfo”, )p.publish_date = json. 取属性 (“list”). 取成员 (0, ). 取通用属性 (“pubDate”, )p.p_place = json. 取属性 (“list”). 取成员 (0, ). 取通用属性 (“place”, )产品信息 = p return (真) return (假) 变量名 | 类 型 | 静态 | 数组 | 备 注 | table | 文本型 | | | i | 整数型 | | |
table = “”table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”. for (1, GetAryElementCount (p_list ), 1, i )table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”table = table + “”. next ()table = table + “ [tr][td]食品名称[/td][td]食品价格[/td][td]单位[/td][td]产地[/td][td]发布日期[/td][/tr] [tr][td]” + p_list .p_name + “[/td][td]” + p_list .p_price + “[/td][td]” + p_list .unitInfo + “[/td][td]” + p_list .p_place + “[/td][td]” + p_list .publish_date + “[/td][/tr] [/table]” return (table)
|
发送QQ邮件N | 文本型 | | |
发送者邮箱 | 文本型 | | | | 发送者密码 | 文本型 | | | | 接收者邮箱 | 文本型 | | | | 邮件标题 | 文本型 | | | | 邮件内容 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | cmd_str | 文本型 | | | 返回 | 文本型 | | | cmd_str = “发邮件.exe ” + 发送者邮箱 + “ ” + 发送者密码 + “ ” + “ ” + 接收者邮箱 + “ ” + #引号 + 邮件标题 + #引号 + “ ” + #引号 + 邮件内容 + #引号 返回 = 系统_取DOS执行结果 (cmd_str, ) return (返回)
蓝X云:https://www.ilanzou.com/s/wB7yH9T4
|