免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11207 | 回复: 19
打印 上一主题 下一主题

[文本处理] 如何用shell获取html网页中指定的文本数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-30 21:35 |只看该作者 |倒序浏览
本帖最后由 sofs 于 2015-08-30 21:39 编辑

我要获取这个网页  best.pconline.com.cn
里面的主题列表的 标题,链接,发布时间,如下图:

请问怎么用shell(tr sed  awk grep 等linux中默认存在的命令)实现?

求教,谢谢。

QQ截图20150830212810.jpg (170.39 KB, 下载次数: 83)

QQ截图20150830212810.jpg

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2015-08-30 22:37 |只看该作者
Xidel is a command line tool to download and extract data from HTML/XML pages as well as JSON APIs .

http://videlibri.sourceforge.net/xidel.html

论坛徽章:
0
3 [报告]
发表于 2015-08-31 01:56 |只看该作者
研究了很久,没搞定……

论坛徽章:
7
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序设计版块每日发帖之星
日期:2015-08-09 06:20:00每日论坛发贴之星
日期:2015-08-09 06:20:00程序设计版块每日发帖之星
日期:2015-08-22 06:20:00程序设计版块每日发帖之星
日期:2015-08-27 06:20:00
4 [报告]
发表于 2015-08-31 09:39 |只看该作者
你看你能不能把页面抓下来我们一起讨论讨论~~

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
5 [报告]
发表于 2015-08-31 09:55 |只看该作者
本帖最后由 reb00t 于 2015-08-31 23:12 编辑
  1. import sys
  2. from lxml import etree
  3. reload(sys)
  4. sys.setdefaultencoding("utf8")
  5. import requests
  6. r = requests.get('http://best.pconline.com.cn/')
  7. html =  r.text
  8. xmlhtml  =  etree.HTML(html)
  9. content = xmlhtml.xpath('//div[starts-with(@id,"topic")]/div[1]/a[2]/text()')
  10. urllist = xmlhtml.xpath('//div[starts-with(@id,"topic")]/div[1]/a[2]/@href')
  11. lastime  = xmlhtml.xpath('//div[starts-with(@id,"topic")]/div[2]/div[2]/span[2]/text()')

  12. data_text = [ text for text in content ]
  13. data_url  = [ url for url in urllist ]
  14. data_time = [ t.strip() for t in lastime ]

  15. for i  in  xrange(0, len(data_text), 1):
  16.         print "%s, %s, %s"  % (data_text[i], data_url[i], data_time[i])
复制代码
结果:
2岁啦!聚超值2周年庆之线下沙龙活动   , http://best.pconline.com.cn/youhui/157456.html, 08-27 11:52
LifeVC小芙 足底按摩器-揉捏型, http://best.pconline.com.cn/youhui/159049.html, 08-31 22:51
Thomas Friends托马斯和朋友之 宝宝的第一个托马斯BCX71, http://best.pconline.com.cn/youhui/159048.html, 08-31 22:00
LifeVC丽芙家居 碳钢 双层 洗衣机置物架, http://best.pconline.com.cn/youhui/159047.html, 08-31 21:16

...
...

论坛徽章:
0
6 [报告]
发表于 2015-08-31 13:59 |只看该作者
回复 4# tuyajie


    用curl或者wget保存页面到本地再进行分析也可以

论坛徽章:
0
7 [报告]
发表于 2015-08-31 14:00 |只看该作者
回复 5# reb00t


    boot哥,搞定了吗?

论坛徽章:
0
8 [报告]
发表于 2015-08-31 20:07 |只看该作者
我又搞了好久,还是没搞出来

论坛徽章:
0
9 [报告]
发表于 2015-08-31 20:07 |只看该作者
我又搞了好久,还是没搞出来

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2015-08-31 22:33 |只看该作者
回复 9# sofs


    shell 脚本做这个实在不是什么合适的选择;还是看看其他对解析 html 有更好支持的编程语言吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP