Python五期爬虫作业

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

2018-01-07  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读