问题描述
从某购物网站获取获取一些商品的标题、售价和销量标题就不多说了,售价只有数字和点,销量只有数字<!--以下为整个网页中我需要的数据的部分,删除了部分无用的元素例如图片啥的--><divclass="J_TItems"><divclass="item5line1"><!--这个理解为一行方便我描述--><dlclass="item"><!--这个理解为一项--><ddclass="detail"><aclass="item-nameJ_TGoldData">标题</a><divclass="attribute"><divclass="cprice-area"><spanclass="c-price">售价</span></div><divclass="sale-area"><spanclass="sale-num">销量</span></div></div></dd></dl><!--每行5项,且最后一项的class="itemlast"这样--></div><!--行数不定--></div>
大神们快来带我起飞
解决方案
解决方案二:
不知道我删除了一些不需要的元素会不会影响匹配啊(整体结构没有改变)
解决方案三:
还是xml解析的方式来吧,删除dom元素对正则有可能有影响
解决方案四:
引用2楼starfd的回复:
还是xml解析的方式来吧,删除dom元素对正则有可能有影响
我还想问下能不能用正则完成这个工作
解决方案五:
dom结构确定,当然能用正则,你要匹配的就是这段<ddclass="detail"><aclass="item-nameJ_TGoldData">标题</a><divclass="attribute"><divclass="cprice-area"><spanclass="c-price">售价</span></div><divclass="sale-area"><spanclass="sale-num">销量</span></div></div></dd>
解决方案六:
正则又不是万能的
解决方案七:
要考虑网页可能会变化。我更倾向于xpath路径+选择器进行匹配,而不是正则匹配。
解决方案八:
用xpath好一点吧。。。。。。
解决方案九:
比如这段是内容,<strongid="jd-price"class="p-price">¥6388.00</strong>绝对路径是/html/body/div[5]/div[3]/div/div[2]/div/div[3]/div[2]/div[2]/strong换成css选择器,div/div/div/div/strong[@"id"="jd-price"]那基本网页再怎么变化,都是正确匹配这个¥6388.00的了
解决方案十:
引用4楼starfd的回复:
dom结构确定,当然能用正则,你要匹配的就是这段<ddclass="detail"><aclass="item-nameJ_TGoldData">标题</a><divclass="attribute"><divclass="cprice-area"><spanclass="c-price">售价</span></div><divclass="sale-area"><spanclass="sale-num">销量</span></div></div></dd>
求点解一下咯引用5楼shingoscar的回复:
正则又不是万能的
引用6楼zhi_ai_yaya的回复:
要考虑网页可能会变化。我更倾向于xpath路径+选择器进行匹配,而不是正则匹配。
引用7楼qq_20324803的回复:
用xpath好一点吧。。。。。。
是这样的。。网页的标签不是很规范,会出现没有闭标签的标签,这个东西浏览器可以识别,但是用xml我不会,所以考虑一下正则
解决方案十一:
比如<meta>、<input>属性写对就可以了
解决方案十二:
本帖最后由 starfd 于 2016-07-05 10:32:35 编辑