【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