美文网首页Python五期爬虫作业
【python爬虫】-十三、十四次

【python爬虫】-十三、十四次

作者: 急躁的假汉子 | 来源:发表于2018-01-19 14:51 被阅读3次

    第十三次 requests模块练习

    一、构造一个访问阳光电影网的请求(url,headers)
    二、输出请求的状态码
    三、输出请求的网页源码
    四、将源码保存成html文件(文件为'moive.html')

    import requests
    from lxml import etree
    root_url = 'http://www.ygdy8.com'
    #请求阳光电影网站
    req = requests.get(root_url)
    #输出请求的状态码
    status_code = req.status_code
    print(status_code)
    #输出网页源码
    req.encoding = 'gb2312'
    html = req.text
    print(html)
    #将源码保存为html文件
    f = open('moive.html','w',encoding='gb2312')
    f.write(html)
    f.close()
    

    14.第十四次 lxml以及xpath练习

    一、div标签文本提取
    将学习视频中xpath.html文件中div标签下文本值
    “第一个div” ,“第二个div” 使用xpath结构化提取并打印输出
    二、ul标签文本提取
    将xpath.html文件中ul标签下“流程” ,“xpath学习”,“流程2”文本值
    使用xpath结构化提取并打印输出
    三、过滤标签
    将xpath.html文件中的第一个div下的前3个a标签的文本及超链接
    使用xpath结构化提取,打印输出

    from lxml import etree
    file = open('xpath.html','r',encoding='utf-8')
    html = file.read()
    selector = etree.HTML(html)
    #将xpath.html文件中ul标签下“流程” ,“xpath学习”,“流程2”文本值
    info1 = selector.xpath('//div[1]/text()')[0].strip()
    info2 = selector.xpath('//div[2]/text()')[0].strip()
    print(info1,'\n',info2)
    #将xpath.html文件中ul标签下“流程” ,“xpath学习”,“流程2”文本值
    ul_infos = selector.xpath('//ul')
    for info in ul_infos:
        ul_text = info.xpath('text()')[0].strip()
        print(ul_text)
    #将xpath.html文件中的第一个div下的前3个a标签的文本及超链接
    a_infos = selector.xpath('//div[1]/ul[@class="title"]/li[position() < 4]/a')
    for info in a_infos:
        a_text = info.xpath('text()')[0]
        a_url = info.xpath('@href')[0]
        print(a_text,a_url)
    

    四、requests模块和lxml&xpath结合提取数据
    结合上节课requests模块知识,将阳光电影网导航栏的文本及超链接结构化提取

    import requests
    from lxml import etree
    root_url = 'http://www.ygdy8.com'
    #请求阳光电影网站
    req = requests.get(root_url)
    #输出请求的状态码
    status_code = req.status_code
    print(status_code)
    #输出网页源码
    req.encoding = 'gb2312'
    html = req.text
    selector = etree.HTML(html)
    infos = selector.xpath('//div[@class="contain"]/ul/li[position()<13]/a')
    for info in infos:
        info_text = info.xpath('text()')[0]
        info_url = root_url + info.xpath('@href')[0]
        print(info_text,info_url)
    

    相关文章

      网友评论

        本文标题:【python爬虫】-十三、十四次

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