美文网首页Python五期爬虫作业
【Python爬虫作业】- 第14次,lxml以及xpath练习

【Python爬虫作业】- 第14次,lxml以及xpath练习

作者: 丽雁解 | 来源:发表于2018-01-07 00:31 被阅读32次
    # 一、div标签文本提取
    # 将学习视频中xpath.html文件中div标签下文本值
    # “第一个div” ,“第二个div” 使用xpath结构化提取并打印输出
    
    from lxml import etree
    import requests
    
    fp=open('xpath.html','r',encoding='utf-8')
    html_content=fp.read()
    fp.close()
    
    selector=etree.HTML(html_content)
    div=selector.xpath('//div/text()')
    for i in range(len(div)):
            aa=div[i].strip(' ').strip('\n')
            if(len(aa)>0):
                    print(aa)
    
    # 运行结果
    # 第一个div
    # 第二个div
    
    #-----------------------------------------------
    # 二、ul标签文本提取
    # 将xpath.html文件中ul标签下“流程” ,“xpath学习”,“流程2”文本值
    # 使用xpath结构化提取并打印输出
    ul=selector.xpath('//ul/text()')
    for j in range(len(ul)):
            aa=ul[j].strip(' ').strip('\n')
            if(len(aa)>0):
                    print(aa)
    
    # 运行结果
    # 流程
    # xpath学习
    # 流程2
    
    # -----------------------------------------------
    # 三、过滤标签
    # 将xpath.html文件中的第一个div下的前3个a标签的文本及超链接
    # 使用xpath结构化提取,打印输出
    infos=selector.xpath('//div[1]/ul[1]/li/a')
    for info in infos:
            a_text=info.xpath('text()')[0]
            a_href=info.xpath('@href')[0]
            print(a_text,' ',a_href)
    
    # 运行结果
    # 1、最新作业贴   http://www.jianshu.com/p/f278c313f91a
    # 2、Python基础编程文章   http://www.jianshu.com/c/868ce75a5ca5
    # 3、作业提交流程   http://www.jianshu.com/p/72be24ca015f
    # 4、作业提交网址   http://www.jianshu.com/c/c88fe7029f28
    # 5、百度云链接   https://pan.baidu.com/s/1kUToeWn
    
    # -----------------------------------------------
    # 四、requests模块和lxml&xpath结合提取数据
    # 结合上节课requests模块知识,将阳光电影网导航栏的文本及超链接结构化提取
    url='http://www.ygdy8.com/'
    headers={
            'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
            'Accept-Encoding':'gzip, deflate',
            'Accept-Language':'zh-CN,zh;q=0.9',
            'Cache-Control':'max-age=0',
            'Connection':'keep-alive',
            'Cookie':'37cs_pidx=1; 37cs_user=37cs43285651090; 37cs_show=69; UM_distinctid=160bca539501d4-0503c2951b5a5e-57683a71-100200-160bca539517a; CNZZDATA5783118=cnzz_eid%3D55112955-1514992804-http%253A%252F%252Fwww.ygdy8.com%252F%26ntime%3D1514992804',
            'Host':'www.ygdy8.com',
            'If-Modified-Since':'Wed, 03 Jan 2018 12:57:50 GMT',
            'If-None-Match':"0dbc7759284d31:54c",
            'Upgrade-Insecure-Requests':'1',
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'
    }
    
    req=requests.get(url,headers=headers)
    req.encoding='gb2312'
    html=req.text
    
    selector=etree.HTML(html)
    a=selector.xpath('//div[@id="header"]/div[@class="contain"]/div[@id="menu"]/div[@class="contain"]//a')
    for i in a:
            a_text=i.xpath('text()')
            a_href=i.xpath('@href')
            if len(a_text)>0:
                    print(a_text[0],' ',a_href[0])
    
    # 运行结果
    # 最新影片   /html/gndy/dyzz/index.html
    # 经典影片   /html/gndy/index.html
    # 国内电影   /html/gndy/china/index.html
    # 欧美电影   /html/gndy/oumei/index.html
    # 日韩电影   /html/gndy/rihan/index.html
    # 华语电视   /html/tv/hytv/index.html
    # 日韩电视   /html/tv/rihantv/index.html
    # 欧美电视   /html/tv/oumeitv/index.html
    # 最新综艺   /html/zongyi2013/index.html
    # 旧版综艺   /html/2009zongyi/index.html
    # 动漫资源   /html/dongman/index.html
    # 游戏下载   /html/game/index.html
    # 高分经典   html/gndy/jddy/20160320/50541.html
    # 设为主页   index.html
    

    相关文章

      网友评论

      • chengcxy:xpath就是多练习
      • 羽恒:可以考虑将爬取数据写入文本文件或者数据库

      本文标题:【Python爬虫作业】- 第14次,lxml以及xpath练习

      本文链接:https://www.haomeiwen.com/subject/ungunxtx.html