Python五期爬虫作业

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

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

猜你喜欢

热点阅读