[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 使用第三方命令爬取最高人民法院裁判文书

本帖最后由 pcl_test 于 2019-2-8 11:01 编辑

感谢贴
十分感谢本论坛 由于工作需要 春节假期用批处理和论坛提供的sed、iconv工具编写了一款爬取最高法裁判文书的爬虫脚本 总共1万多份裁判文书都可以在本地进行搜索查询了 虽然只是静态网页爬虫但十分有成就感 今后争取能学会动态网页爬虫技术 哈哈 下面上代码
  1. set url_1=http://www.court.gov.cn/wenshu.html
  2. echo # target = %url_1%
  3. curl %url_1%>temp.tmp 2>nul
  4. iconv -c -f utf-8 -t gbk//ignore temp.tmp >gbk.tmp
  5. sed -r -i "s/[[:space:]]//g" gbk.tmp
  6. sed -n -r "/<liclass=\"last\">.*page/p" gbk.tmp >temp.tmp
  7. sed -r -i "s/.*page.([0-9]+)(\.html)?\".*/\1/" temp.tmp
  8. set /p pages=<temp.tmp
  9. sed -n -r "/共收录<font>([0-9]+)<\/font>份/p" gbk.tmp >temp.tmp
  10. sed -r -i "s/.*共收录<font>([0-9]+)<\/font>份.*/\1/" temp.tmp
  11. set /p articles=<temp.tmp
  12. echo # find !pages! pages , !articles! articles
  13. set /p down_number=# input the number of latest articles to down ^( 1 - !articles! ^) :
  14. set n=1
  15. :loop_begin
  16. if !n! GTR !pages! goto loop_end
  17. curl %url_1%?page=!n!>temp.tmp 2>nul
  18. iconv -c -f utf-8 -t gbk//ignore temp.tmp >gbk.tmp
  19. sed -r -i "s/[[:space:]]//g" gbk.tmp
  20. sed -n -r -i "/target=\"_blank\"href=\".*html/p" gbk.tmp
  21. sed -r -i "s/.*target=\"_blank\"href=\"(.*html).*/\1/" gbk.tmp
  22. type gbk.tmp>>link.bak
  23. set /a n+=1
  24. set lines=0
  25. for /f %%i in (link.bak) do set /a lines+=1
  26. if !lines! GEQ !down_number! (
  27.     goto loop_end
  28. ) else (
  29.     goto loop_begin
  30. )
  31. :loop_end
  32. set start_time=!time!
  33. set n=0
  34. :down_begin
  35. set /a down_number-=1
  36. if !down_number! LSS 0 goto end
  37. set url=""
  38. set /p url=<link.bak
  39. if !url!=="" goto end
  40. curl http://www.court.gov.cn!url! >temp.tmp 2>nul
  41. iconv -c -f utf-8 -t gbk//ignore temp.tmp >gbk.tmp
  42. sed -r -i "s/[[:space:]]//g" gbk.tmp
  43. set t=""
  44. sed -n "/<divclass=\"title\">/p" gbk.tmp>title.tmp
  45. sed -r -i "s/<[^>]*>//g" title.tmp
  46. sed -i "s/:/:/g" title.tmp
  47. sed -i "s/(/(/g" title.tmp
  48. sed -i "s/)/)/g" title.tmp
  49. set /p t=<title.tmp
  50. sed -n -i "/<divclass=\"txt_txt\"id=\"zoom\">/,/\[CDATA\[/p" gbk.tmp
  51. sed -i "s/&nbsp;//g" gbk.tmp
  52. sed -r -i "s/<[^>]*>/\n/g" gbk.tmp
  53. sed -n -i "1,/^二〇.*年.*月.*日/p" gbk.tmp
  54. sed -r -i "/^$/d" gbk.tmp
  55. sed -i "s/(/(/g" gbk.tmp
  56. sed -i "s/)/)/g" gbk.tmp
  57. sed -n -r "/^([0-9][0-9][0-9][0-9]).*号$/p" gbk.tmp >num.tmp
  58. set file_number=""
  59. set /p file_number=<num.tmp
  60. sed -r -i "s/^(.*)/    \1/" gbk.tmp
  61. ren gbk.tmp "!file_number! !t!".txt 2>nul
  62. set /a n+=1
  63. sed -i "1 d" link.bak
  64. echo # !n! articles down
  65. goto down_begin
  66. :end
  67. del link.bak
  68. del *.tmp
  69. echo # mission start at !start_time! end at !time! , !n! succeed
  70. pause>nul
复制代码
2

评分人数

民工一枚

回复 2# xczxczxcz

这是什么语言?感觉比较厉害
民工一枚

TOP

返回列表