python beautifulsoup解析器与xpath解析器对比

item = BeautifulSoup(page,'lxml')

# parser = etree.HTML(page)
# li = parser.xpath('//ul[@id="s-results-list-atf"]//li//@data-asin')
# for l in li:
#     print(l)


div = item.find('div',id='centerMinus')    #等价于 .xpath('//div[@centerMinus]
content = div.find('ul',id='s-results-list-atf')
content.get_text() #等价于 .xpath中的string('//ul[@id="s-results-list-atf"]')
count = 0
for li in item.find_all('li',attrs={'data-result-rank':True}): #等价于 .xpath('//li[@data-result-rank]')
    #print(li['data-asin'])
    #print li.select('a[class="a-size-small a-link-normal a-text-normal"]')
    #select 只能提取子节点,不能找到孙节点,但是会提取满足条件的所有子节点
    ok = li.select('div.s-item-container > div.a-row')  #ok = li.select('div.s-item-container > div.a-row') 与 ok = li.select('div.s-item-container > div .a-row') 与 ok = li.select('div.s-item-container > div ~ .a-row')的结果不同,">" 号后面的div加了" ~ ",
    for x in ok:
        for lo in x.descendants:
            print(lo.string)


        #print(x.get_text())
    #print li.select('div.s-item-container > div.a-row')    #等价于 .xpath('//div[@class='s-item-container']//div[@class='a-row']')
    #print li.find_all('a',attrs={'class':'a-size-small a-link-normal a-text-normal'})
    break

    count+=1
print(count)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值