python爬虫基础——xpatn

在网页上查看,测试使用,可以下载一个xpath helper

python爬虫基础——xpatn_第1张图片

一级分类:    //h3[@class="classify_c_h3"]/a/text()
二级分类:    //div[@class="classify_list"]/span/a/text()
                      //div[contains(@class,"classify_list")]/span/a/text() #常用这种

#先下载一个lxml

import lxml.etree as le

with open('edu.html','r', encoding='utf_8') as f:
    html = f.read()
    html_x = le.HTML(html)
    print(html_x)
    #直接对HTML提取不需要加点
    div_x_s = html_x.xpath('//div[@class="classify_cList"]')
    print(div_x_s)
    data_x =[]
    for div_x in div_x_s:
        #./代表早当前节点下进行搜索
        catrgory1 = div_x.xpath('./h3/a/text()')[0]
        catrgory2 = div_x.xpath('./div/span/a/text()')
        data_x.append(
           dict(
               catrgory1=catrgory1,
               catrgory2=catrgory2,
           )
        )
    print(data_x)
    for div in data_x:
        print(div['catrgory1'])
        for catrgory2 in div['catrgory2']:
            print('    '+catrgory2)

测试用的html 




        
    
    
    
    
    
    
    
    
    
    CSDN学院-IT实战派
                    
        
    
    
    
    
    

    
    
            
        
    
    
    
    
    
    
    
    

    
    
    
    

    
    
    

    
    
    
    

    
    

    
    
    
        
    
    
    
    
    

    
    
    
    
    
    

    




        











    
实战特训营
  • Python闯关特训营
  • 人工智能工程师
  • 区块链工程师
限时秒杀
08月05日专场
距离结束还剩:
00:00:00
精品推荐
GO语言零基础入门最佳教程
567人已学习43课时
Gardener¥12.00
mybatis精讲
382人已学习33课时
冯文凯¥46.00
Python爬虫进阶:Scarpy框架教程
1126人已学习12课时
7周Spring Cloud微服务架构项目实战
4696人已学习192课时
Leon¥129.00
C++ Qt进阶之复杂控件自定义
521人已学习48课时
陈超¥199.00
Flutter女装商城实战(含源码)
964人已学习110课时
亢少军¥398.00
数字成像系统
6843人已学习34课时
姜卓¥600.00
推荐讲师
李宁
讲师推荐值
课程:121学生:906239
黄勇
讲师推荐值
课程:7学生:27466
唐宇迪
讲师推荐值
课程:48学生:351817
贺利坚
讲师推荐值
课程:24学生:568122
合作机构

#直接测试

import urllib.request as ur
import lxml.etree as le
import  user_agent
import json

def getRequest(url):
    return ur.Request(
        url=url,
        headers={
            'User-Agent':user_agent.get_user_agent_pc(),
        }
    )


request = ur.Request('https://edu.csdn.net/')
#先得到response
response = ur.urlopen(request).read()
html_x = le.HTML(response)
print(html_x)
# 直接对HTML提取不需要加点
div_x_s = html_x.xpath('//div[@class="classify_cList"]')
#  print(div_x_s)
data_x = []
for div_x in div_x_s:
    # ./代表早当前节点下进行搜索
    catrgory1 = div_x.xpath('./h3/a/text()')[0]
    catrgory2 = div_x.xpath('./div/span/a/text()')
    data_x.append(
        dict(
            catrgory1=catrgory1,
            catrgory2=catrgory2,
        )
    )
# print(data_x)
for div in data_x:
    print(div['catrgory1'])
    for catrgory2 in div['catrgory2']:
        print('    ' + catrgory2)

 

你可能感兴趣的:(python,爬虫,python)