xpath从此放弃正则表达式

  1. 本次的问题是从网页中提取url产生的。地址http://beijing.anjuke.com/sale/
  2. xpath介绍自己百度,这里有两个重点,提取文本内容/text(),提取属性内容/@xxx
  3. 下面举例说明使用介绍,前提条件有lxml模块
  4. 首先点击图片,查看元素,得到xpath

    这里写图片描述
    5.得到的是原始是”//[@id=”houselist-mod”]/li[2]/div[1]/img” 这里我要提取的img里面的src,从结构中我们很容易得到修改后的结果”//[@id=”houselist-mod”]/li/div[1]/img/@src”
    6.这里最好把页面的源代码保存下来,放在一个本地文件中,因为我试了,直接通过代码得到源代码的,中间最重要的部分,得不到。下面的代码展示

#coding:utf-8
import re
from lxml import etree
class splider:
   def printurl(self):
        te=open("3.txt")
        cont=te.read()
        selector=etree.HTML(cont)
        texturl=selector.xpath('//*[@id="houselist-mod"]/li/div[1]/img/@src')
        print "符合条件个数" +str(len(texturl))      
        for text in texturl:    
            print text
if __name__ == '__main__':
    sp=splider()
    sp.printurl()

这里写图片描述
7.再举一个得到内容的例子
这里写图片描述
得到的原始内容是//[@id=”houselist-mod”]/li[2]/div[2]/div[2]/span[1]分析得到//[@id=”houselist-mod”]/li/div[2]/div[2]/span/text() 这里我做了点处理。信息成条显示。

#coding:utf-8
import re
from lxml import etree
class splider:
   def printurl(self):
        te=open("3.txt")
        cont=te.read()
        selector=etree.HTML(cont)
        texturl=selector.xpath('//*[@id="houselist-mod"]/li/div[2]/div[2]/span/text()')
        i=0;     
        detail=""
        for text in texturl:  
            if i==5:
               print detail[:-1]
               i=1;
               detail=text+"|"

            else:             
                i=i+1
                detail=detail+text+"|"

if __name__ == '__main__':
    sp=splider()
    sp.printurl()

这里写图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wending-Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值