美文网首页Python五期爬虫作业
【Python爬虫作业】- 第15次,xpath过滤标签提取ur

【Python爬虫作业】- 第15次,xpath过滤标签提取ur

作者: 丽雁解 | 来源:发表于2018-01-07 17:13 被阅读91次
    from lxml import etree
    import requests
    
    # -----------------------------------------------
    # 一、xpath过滤标签练习
    # 学完视频将阳光电影网首页导航栏前9个菜单url抓取,输出结果为可以正常访问的url, 并过滤掉"经典影片"的菜单url
    url='http://www.ygdy8.com'
    url_list=[]
    
    req=requests.get(url)
    req.encoding='gb2312'
    html=req.text
    
    selector=etree.HTML(html)
    infos=selector.xpath('//*[@id="menu"]/div/ul//li[position()<10]/a')
    for info in infos:
            menus_text=info.xpath('text()')
            menus_href=info.xpath('@href')
            if len(menus_text[0])>0 and menus_text[0]!='经典影片':
                    menu_text=menus_text[0]
                    menu_href=url+menus_href[0]
                    # print(menu_text,menu_href)
    
                    # 运行结果
                    # 最新影片 http: // www.ygdy8.com / html / gndy / dyzz / index.html
                    # 国内电影 http: // www.ygdy8.com / html / gndy / china / index.html
                    # 欧美电影 http: // www.ygdy8.com / html / gndy / oumei / index.html
                    # 日韩电影 http: // www.ygdy8.com / html / gndy / rihan / index.html
                    # 华语电视 http: // www.ygdy8.com / html / tv / hytv / index.html
                    # 日韩电视 http: // www.ygdy8.com / html / tv / rihantv / index.html
                    # 欧美电视 http: // www.ygdy8.com / html / tv / oumeitv / index.html
                    # 最新综艺 http: // www.ygdy8.com / html / zongyi2013 / index.html
    
                    # ------------------------------------------------------------------------------------------------------------------
                    # 二、循环内请求解析
                    # 对第一题解析出来的url进行请求,解析出每个菜单的分页总数,每个菜单的id,并构造出全部的菜单分页请求url,全部存进一个url_list变量,url_list变量为列表
                    req2=requests.get(menu_href)
                    req2.encoding='gb2312'
                    html2=req2.text
                    selector2=etree.HTML(html2)
                    page_info=selector2.xpath('//div[@class="x"]//text()')[1].split('/')[0].replace('共','').replace('页','').strip()
                    list_id=selector2.xpath('//div[@class="x"]//a/@href')[0].split('.')[0].split('_')[1]
                    print(menu_text,menu_href,'TotalPage:',page_info,'list_id:',list_id)
                    for ipage in range(int(page_info)):
                            page_url=menu_href.replace('index.html','')+'list_'+list_id+'_'+str(ipage+1)+'.html'
                            url_list.append(page_url)
    
    
                    # 运行结果
                    # 最新影片 http://www.ygdy8.com/html/gndy/dyzz/index.html TotalPage: 168 list_id: 23
                    # 国内电影 http://www.ygdy8.com/html/gndy/china/index.html TotalPage: 97 list_id: 4
                    # 欧美电影 http://www.ygdy8.com/html/gndy/oumei/index.html TotalPage: 179 list_id: 7
                    # 日韩电影 http://www.ygdy8.com/html/gndy/rihan/index.html TotalPage: 29 list_id: 6
                    # 华语电视 http://www.ygdy8.com/html/tv/hytv/index.html TotalPage: 18 list_id: 71
                    # 日韩电视 http://www.ygdy8.com/html/tv/rihantv/index.html TotalPage: 36 list_id: 8
                    # 欧美电视 http://www.ygdy8.com/html/tv/oumeitv/index.html TotalPage: 14 list_id: 9
                    # 最新综艺 http://www.ygdy8.com/html/zongyi2013/index.html TotalPage: 135 list_id: 99
    

    相关文章

      网友评论

        本文标题:【Python爬虫作业】- 第15次,xpath过滤标签提取ur

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