免费注册 查看新帖 |

Chinaunix

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

请问如何获取tmall网页div中内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-10 16:13 |只看该作者 |倒序浏览
   
  <div class="product" data-id="16657871822" data-atp="a!,,50024684,248137294,,,,">
<div class="product-iWrap">
<div class="productImg-wrap">
<a href="//detail.tmall.com/item.htm?id=16657871822&amp;_u=aulcgp4a205&amp;areaId=&amp;user_id=705990202&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d" class="productImg" target="_blank" data-p="5-10">
<img  src="http://gi3.mlist.alicdn.com/bao/uploaded/i3/705990202/T2XhYoXjhaXXXXXXXX_!!705990202.jpg_b.jpg"  />
</a>


<a class="j_ProductPin productPin" data-p="5-12"><span>钉一下已钉住</span></a></div>

<p class="productPrice">


<em title=" 2.80 "><b>&yen;</b>2.80</em>
<del>&yen;5.60</del>
</p>
   <p class="productTitle">
     
<a href="//detail.tmall.com/item.htm?id=16657871822&amp;_u=aulcgp4a205&amp;areaId=&amp;user_id=705990202&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d" target="_blank" title="艾爵 led灯带 3528贴片灯条 高亮超亮 吊顶柜台七彩霓虹灯光带" data-p="5-11" >艾爵 <span class=H>led</span>灯带 3528贴片灯条 高亮超亮 吊顶柜台七彩霓虹灯光带</a>
   </p>
<div class="productShop" data-atp="b!5-3,{user_id},,,,,,">
<a class="productShop-name" href="search_shopitem.htm?user_id=705990202&amp;from=_1_&amp;stype=search" target="_blank">
国定家居专营店
</a>
</div>

<p class="productStatus">
<span>月成交<em>10笔</em></span>
<span>评价 <a href="//detail.tmall.com/item.htm?id=16657871822&amp;_u=aulcgp4a205&amp;areaId=&amp;user_id=705990202&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d&on_comment=1#J_TabBar" target="_blank" data-p="5-1">122</a></span>
<span data-icon="small" class="ww-light ww-small m_wangwang J_WangWang" data-item="16657871822" data-nick="国定家居专营店" data-tnick="国定家居专营店" data-display="inline"
data-atp="a!5-2,,,,,,,705990202"></span>
</p>
</div>
</div>

  <div class="product" data-id="25637256030" data-atp="a!,,50022652,220344531,,,,">
<div class="product-iWrap">
<div class="productImg-wrap">
<a href="//detail.tmall.com/item.htm?id=25637256030&amp;_u=aulcgp48c9b&amp;areaId=&amp;user_id=1684406272&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d" class="productImg" target="_blank" data-p="6-10">
<img  src="http://gi2.mlist.alicdn.com/bao/uploaded/i2/1684406272/T2e3u6XENXXXXXXXXX_!!1684406272.jpg_b.jpg"  />
</a>


<a class="j_ProductPin productPin" data-p="6-12"><span>钉一下已钉住</span></a></div>

<p class="productPrice">


<em title=" 2.90 "><b>&yen;</b>2.90</em>
<del>&yen;12.00</del>
</p>
   <p class="productTitle">
     
<a href="//detail.tmall.com/item.htm?id=25637256030&amp;_u=aulcgp48c9b&amp;areaId=&amp;user_id=1684406272&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d" target="_blank" title="三农led灯泡3W5W7W E27螺口节能室内照明球泡灯超高亮LED光源lamp" data-p="6-11" >三农<span class=H>led</span>灯泡3W5W7W E27螺口节能室内照明球泡灯超高亮<span class=H>LED</span>光源lamp</a>
   </p>
<div class="productShop" data-atp="b!6-3,{user_id},,,,,,">
<a class="productShop-name" href="search_shopitem.htm?user_id=1684406272&amp;from=_1_&amp;stype=search" target="_blank">
三农照明旗舰店
</a>
</div>

<p class="productStatus">
<span>月成交<em>77笔</em></span>
<span>评价 <a href="//detail.tmall.com/item.htm?id=25637256030&amp;_u=aulcgp48c9b&amp;areaId=&amp;user_id=1684406272&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d&on_comment=1#J_TabBar" target="_blank" data-p="6-1">1194</a></span>
<span data-icon="small" class="ww-light ww-small m_wangwang J_WangWang" data-item="25637256030" data-nick="三农照明旗舰店" data-tnick="三农照明旗舰店" data-display="inline"
data-atp="a!6-2,,,,,,,1684406272"></span>
</p>
</div>
</div>
        


需要获取 “//detail.tmall.com/item.htm?id=25637256030”,<em title=" 2.90 "><b>&yen;</b>2.90</em> 中的 2.90,title="三农led灯泡3W5W7W E27螺口节能室内照明球泡灯超高亮LED光源lamp"中的 title.

我这无论如何匹配都不到想要的数据。

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
2 [报告]
发表于 2014-02-10 17:11 |只看该作者
  1. <em\s*title=["']?\s*([\d.]+)\s*["']?[\s\S]+?title=['"]?([^"]+)['"]
复制代码
匹配
2.80
2.90
艾爵 led灯带 3528贴片灯条 高亮超亮 吊顶柜台七彩霓虹灯光带
三农led灯泡3W5W7W E27螺口节能室内照明球泡灯超高亮LED光源lamp

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
3 [报告]
发表于 2014-02-10 17:26 |只看该作者
这是在爬价格么.

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
4 [报告]
发表于 2014-02-10 20:36 |只看该作者
本帖最后由 yakczh_cu 于 2014-02-10 20:45 编辑
  1. use Mojo::DOM;
  2. my $html=read_file(\*DATA);
  3. my $dom = Mojo::DOM->new($html);
  4. for my $product ($dom->find('div[class="product-iWrap"]')->each) {
  5.           
  6. print "\n price: ",           $product->find('p[class="productPrice"]>em')->text;
  7. print "\t title: ", $product->find('p[class="productTitle"]>a')->attr('title');

  8.   }
复制代码
price:  2.80 title: 艾爵 led灯带 3528贴片灯条 高亮超亮 吊顶柜台七彩霓虹灯光带
price:  2.90 title: 三农led灯泡3W5W7W E27螺口节能室内照明球泡灯超高亮LED光源lamp

这个页面还是很规整的应该是套的模板,这种抓取最爽了,最麻烦的是手写的那种,第一条跟第二条不一样

论坛徽章:
0
5 [报告]
发表于 2014-02-11 10:36 |只看该作者
mcshell 发表于 2014-02-10 17:11
匹配
2.80
2.90



谢谢,这个匹配我没有成功。

论坛徽章:
0
6 [报告]
发表于 2014-02-11 10:46 |只看该作者
本帖最后由 hubble.king 于 2014-02-11 11:04 编辑

回复 4# yakczh_cu


    谢谢,成功了。
但是还有个问题。

如何把里面的 href链接取出来有截取一下呢?

<a href="//detail.tmall.com/item.htm?id=25637256030&amp;_u=aulcgp48c9b&amp;areaId=&amp;user_id=1684406272&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d"

print "\t href: http:", $product->find('p[class="productTitle"]>a')->attr('href');

能得到 //detail.tmall.com/item.htm?id=25637256030&amp;_u=aulcgp48c9b&amp;areaId=&amp;user_id=1684406272&amp;is_b=1&amp;cat_id=50097362&amp;q=led&amp;rn=1e13548ff9f872c8eb89857284cdda6d

如何能只得到 http://detail.tmall.com/item.htm?id=25637256030 这段呢?

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
7 [报告]
发表于 2014-02-11 11:09 |只看该作者
本帖最后由 mcshell 于 2014-02-11 11:14 编辑

回复 5# hubble.king
  1. perl -lne 'BEGIN{$/=undef};1 while(/<em\s*title=["]?\s*([\d.]+)\s*["]?[\s\S]+?<a\s*href=["]?([^&]+).*?title=["]?([^"]+)["](?{print "$1\thttp:$2\t$3"})/g)' file
  2. 2.80    http://detail.tmall.com/item.htm?id=16657871822 艾爵 led灯带 3528贴片灯条 高亮超亮 吊顶柜台七彩霓虹灯光带
  3. 2.90    http://detail.tmall.com/item.htm?id=25637256030 三农led灯泡3W5W7W E27螺口节能室内照明球泡灯超高亮LED光源lamp
复制代码

论坛徽章:
0
8 [报告]
发表于 2014-02-11 11:10 |只看该作者
  1. use Mojo::DOM;
  2. use warnings;
  3. use LWP::Simple;

  4. open(READ,"tmall.html")||die "File does not exist!";
  5. #open(OUTFILE,">./timall.txt");

  6. my $html;
  7. local $/ ;
  8. $html=<READ>;
  9. my $dom = Mojo::DOM->new($html);

  10. for my $product ($dom->find('div[class="product-iWrap"]')->each) {
  11.          
  12. print "price: ", $product->find('p[class="productPrice"]>em')->text;
  13. print "\t title: ", $product->find('p[class="productTitle"]>a')->attr('title');
  14. my $href=$product->find('p[class="productTitle"]>a')->attr('href');
  15. my ($href1)=$href=~m/(.*\d{11}).*/s;
  16. print "\t href: http:",$href1 ,"\n";

  17.   }
  18. close(READ);
  19. #close(OUTFILE);
复制代码
搞定了。

论坛徽章:
0
9 [报告]
发表于 2014-02-11 11:19 |只看该作者
回复 7# mcshell



谢谢,真简洁。
以上我通过shell脚本,写好好多才能实现。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP