python爬虫基础——xpatn

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

一级分类:    //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 lewith 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实战派
    

CSDN学院

人工智能

机器学习 /深度学习 /计算机视觉

编程语言

C/C++ /Java /Python

考试认证

华为认证 /思科认证 /软考

移动开发

iOS /微信开发 /Swift

云计算/大数据

Hadoop /Docker/K8S /Spark

其他课程

系统/网络/运维 /数据库 /区块链全部分类

人工智能

机器学习深度学习语音识别计算机视觉NLP强化学习全部课程

好课推荐

深度学习框架Tensorflow案例实战视频课程深度学习框架Tensorflow案例实战视频课程¥136.00 深度学习入门视频课程深度学习入门视频课程¥346.00 让机器“看见”—计算机视觉原理及实战让机器“看见”—计算机视觉原理及实战¥600.00 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程¥181.00

编程语言

C/C++JavaC#Objective-CPython.NETGo语言PHPRuby/RailsMatlab其他全部课程

好课推荐

爬虫微课5小时 Python学习路线爬虫微课5小时 Python学习路线¥86.00 编程可以这样学编程可以这样学会员免费 java核心技术精讲java核心技术精讲会员免费 《C语言/C++学习指南》语法篇(从入门到精通)《C语言/C++学习指南》语法篇(从入门到精通)¥39.00

考试认证

软考Linux认证华为认证思科认证微软认证项目管理H3C认证计算机等级考试其他全部课程

好课推荐

2019软考系统集成项目管理工程师视频教程 案例分析精讲2019软考系统集成项目管理工程师视频教程 案例分析精讲¥254.00 2019软考信息系统项目管理师_项目管理(上) 视频培训教程2019软考信息系统项目管理师_项目管理(上) 视频培训教程¥208.00 2019软考网络工程师-上午真题解析培训视频课程2019软考网络工程师-上午真题解析培训视频课程¥117.00 2019软考网络规划设计师基础知识视频教程2019软考网络规划设计师基础知识视频教程¥451.00

移动开发

手游开发iOS微信开发SwiftAndroidWebappReactNativeCordova其他全部课程

好课推荐

FFmpeg音视频开发实战5 iOS/Android/windows/Linux FFmpeg音视频开发实战5 iOS/Android/windows/Linux ¥5999.00 Android入门实战教程Android入门实战教程¥69.00 精讲精练_参悟Android核心技术精讲精练_参悟Android核心技术¥59.00 Android开发课程-功底JavaAndroid开发课程-功底Java会员免费

云计算/大数据

SparkDocker/K8SHadoopOpenStack云计算基础架构虚拟化技术云平台大数据ELK其他全部课程

好课推荐

大数据40天精英计划大数据40天精英计划¥700.00 徐培成大数据Hadoop经典案例徐培成大数据Hadoop经典案例¥1000.00 hbase入门精讲hbase入门精讲会员免费 R语言与数据分析【第一季】R语言与数据分析【第一季】¥39.00

其他课程

研发管理系统/网络/运维数据库游戏开发设计制作智能硬件/物联网大学课程产品经理信息安全区块链全部课程

好课推荐

爬虫微课5小时 Python学习路线爬虫微课5小时 Python学习路线¥86.00 编程可以这样学编程可以这样学会员免费 FFmpeg音视频开发实战5 iOS/Android/windows/Linux FFmpeg音视频开发实战5 iOS/Android/windows/Linux ¥5999.00 java核心技术精讲java核心技术精讲会员免费
学院要闻 会员详情实战特训营
  • Python闯关特训营
  • 人工智能工程师
  • 区块链工程师
精选专题会员兑换全部会员兑换超级VIP免费兑换立即开通限时秒杀全部秒杀08月05日专场距离结束还剩:00:00:00会员秒杀特惠
    精品推荐全部课程软件测试开发如何获得P5-P7高薪offer?软件测试开发如何获得P5-P7高薪offer?539人已学习16课时思寒¥12.00GO语言零基础入门最佳教程GO语言零基础入门最佳教程567人已学习43课时Gardener¥12.00mybatis精讲mybatis精讲382人已学习33课时冯文凯¥46.00Python爬虫进阶:Scarpy框架教程Python爬虫进阶:Scarpy框架教程1126人已学习12课时CSDN就业班¥59.007周Spring Cloud微服务架构项目实战7周Spring Cloud微服务架构项目实战4696人已学习192课时Leon¥129.00C++ Qt进阶之复杂控件自定义C++ Qt进阶之复杂控件自定义521人已学习48课时陈超¥199.00Flutter女装商城实战(含源码)Flutter女装商城实战(含源码)964人已学习110课时亢少军¥398.00Spring Cloud微服务--入门到精通Spring Cloud微服务--入门到精通692人已学习51课时Java从入门到进阶¥59.00数字成像系统数字成像系统6843人已学习34课时姜卓¥600.00python数据分析与机器学习实战【2019新版】python数据分析与机器学习实战【2019新版】91171人已学习207课时唐宇迪¥362.00热门直播直播日历全部直播推荐讲师申请成为讲师厉风行讲师推荐值课程:7学生:218637查看讲师课程李宁讲师推荐值课程:121学生:906239讲师卡黄勇讲师推荐值课程:7学生:27466讲师卡唐宇迪讲师推荐值课程:48学生:351817讲师卡贺利坚讲师推荐值课程:24学生:568122讲师卡合作机构成为合作伙伴 手机看关注公众号

    关注公众号

    下载APP

    下载APP

    客服帮助返回
    顶部

    #直接测试

    import urllib.request as ur
    import lxml.etree as le
    import  user_agent
    import jsondef 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)

     


    本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

    相关文章

    立即
    投稿

    微信公众账号

    微信扫一扫加关注

    返回
    顶部