Board logo

标题: [文件操作] 批处理怎样获取指定网址HTML中指定段编辑后插入到另一HTML文件中? [打印本页]

作者: biking    时间: 2015-10-8 11:54     标题: 批处理怎样获取指定网址HTML中指定段编辑后插入到另一HTML文件中?

抱歉!我问的问题应该是很简单的,可是我是小白,希望大家见谅!
这个东东刚刚昨晚手动实现了,手动流程如下:
1、自己的HTML文件模版已编辑好
2、复制目标网址HTML中自己想要的段落,粘帖到TXT文件中
3、修改字段(也就替换修改些语句)
4、将修改后的字段插入到自己的HTML文件中

因为需要定时更新,今天起来自己也找了些相关的代码,但还是没搞明白
不知道能否用批处理实现整个过程?求指教~!!!
样例:
例如:我要获取样例中内容字段是

用批处理获取
我最终只需要每个人发的帖子内容
但该内容在<div>标签下有很多我不要的信息
所以需要修改掉或更改内容后如下:

差不多就这样吧
修改部分规律我自己弄,给我查找替换代码套用就好了

最后,要把我修改后的段落插入我自己模版指定位置
我的模版及插入位置
作者: wankoilz    时间: 2015-10-8 14:05

本帖最后由 wankoilz 于 2015-10-8 21:41 编辑

描述下目标字段的规律特点吧!没看懂...
上传两个样本吧兄弟,需要测试啊!
作者: biking    时间: 2015-10-8 21:44

回复 2# wankoilz


    现在就很明确了
我截图给你说明
作者: wankoilz    时间: 2015-10-8 21:57

最好是有样本兄弟
作者: biking    时间: 2015-10-8 22:48

回复 4# wankoilz


    这样能看懂了不?让您费心了,感谢~!
作者: biking    时间: 2015-10-8 22:55

回复 4# wankoilz


   等下吧
我找个简单的,规律比较明显的
作者: wankoilz    时间: 2015-10-9 13:57

本帖最后由 wankoilz 于 2015-10-10 10:51 编辑

明白了,在尝试!
捣鼓了awk,发现awk做多行匹配和替换比较难,还有涉及到编码问题...或者说我没找到技巧...
等会儿有空用其他方法先解决问题...
作者: wankoilz    时间: 2015-10-9 16:43     标题: 标题

本帖最后由 wankoilz 于 2015-10-10 14:24 编辑

时间比较紧,草草的用vbs勉强做了一个。需要把a.html,b.html和脚本放一起执行。
a.html为源文件,b.html为被替换文件,生成新文件为c.html
  1. Set fso = WScript.CreateObject("Scripting.Filesystemobject")
  2. scriptPath=Replace(WScript.ScriptFullName,WScript.ScriptName,"")
  3. Set RE=New RegExp
  4. RE.Global=True
  5. RE.IgnoreCase=True
  6. RE.Multiline=True
  7. RE.Pattern="<ul.*?>(\s*<li(.|\s)*?)</ul>"    '(.|\r|\n)或(.|\s)表示任意字符
  8. Set ado1=CreateObject("adodb.stream")
  9. '以utf-8格式读取a.html并获取内容
  10. ado1.Type=2
  11. ado1.Charset="utf-8"
  12. ado1.Mode=3
  13. ado1.Open
  14. ado1.LoadFromFile(scriptPath&"a.html")
  15. str=ado1.ReadText()
  16. Set Matches=RE.Execute(str)
  17. For Each Match In Matches
  18.     source=Match.Submatches(0)
  19. Next
  20. '读取b.html并用获取的内容替换掉相应部分
  21. ado1.LoadFromFile(scriptPath&"b.html")
  22. str=ado1.ReadText()
  23. Set Matches=RE.Execute(str)
  24. For Each Match In Matches
  25.     result=Replace(str,Match.Submatches(0),source)
  26. Next
  27. '用close方法清空数据后再以utf-8格式写入
  28. ado1.Close
  29. ado1.Open
  30. ado1.WriteText(result)
  31. ado1.SaveToFile scriptPath&"c.html",2
  32. ado1.Close
复制代码

作者: biking    时间: 2015-10-10 15:24

回复 8# wankoilz


    感谢~!我先捣鼓下~!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2