|
今天按这个主题的步骤,做了测试,结果如下:
1. 这篇文章是手工把提取器内容从MS谋数台复制到python程序文件中,没有使用API
2. 原文中测试所用的商品网址,该商品已经下架。这个在测试时应该检查并替换成有效的网址
3. 京东的商品详情页面结构有变化,原提取器内容无法提取到商品名称和价格,需要在MS谋数台里做好规则后,把规则复制到程序代码中
在此上传已更新的实测所用的程序文件,可以参考
- #/usr/bin/python
- from urllib import request
- from lxml import etree
- from selenium import webdriver
- import time
- # 京东手机商品页面
- url = "http://item.jd.com/4325123.html"
- # 下面的xslt是通过集搜客的谋数台图形界面自动生成的
- xslt_root = etree.XML("""\
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
- <xsl:template match="/">
- <li>
- <xsl:apply-templates select="//*[@class='sku-name' and count(././text())>0]" mode="li"/>
- </li>
- </xsl:template>
- <xsl:template match="//*[@class='sku-name' and count(././text())>0]" mode="li">
- <item>
- <商品名称>
- <xsl:value-of select="./text()"/>
- </商品名称>
- <京东价>
- <xsl:value-of select="following-sibling::div[position()=2]//*[@class='p-price']/span[position()=2]/text()"/>
- </京东价>
- </item>
- </xsl:template>
- </xsl:stylesheet>""")
- # 使用webdriver.PhantomJS
- browser = webdriver.PhantomJS(executable_path='C:\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe')
- browser.get(url)
- time.sleep(3)
- transform = etree.XSLT(xslt_root)
- # 执行js得到整个dom
- html = browser.execute_script("return document.documentElement.outerHTML")
- doc = etree.HTML(html)
- # 用xslt从dom中提取需要的字段
- result_tree = transform(doc)
- print(result_tree)
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|