美文网首页Python三期爬虫作业
【Python爬虫】-【第四周】02-作业

【Python爬虫】-【第四周】02-作业

作者: Ubuay | 来源:发表于2017-08-15 23:06 被阅读20次

    一、作业内容

    1. 学习 XPath 语法。
    2. 安装 lxml 模块。
    3. 使用 requests 和 lxml 里的 etree 类对上节课简书首页 HTML 源代码转换为 selector 对象,解析输出简书首页的标题。

    1. 学习 xpath 语法。

    XPath 语法


    2. 安装 lxml 模块。

    以管理员的身份运行命令行,在命令行中输入pip install lxml,等一会便会自动装好。


    3. 输出简书的标题

    使用 requests 和 lxml 里的 etree 类对上节课简书首页 HTML 源代码转换为selector 对象,解析输出简书首页的标题。

    # 导入 requests 模块
    # 导入 lxml.etree
    import requests
    from lxml import etree
    
    # 使用 get()方法获取简书首页源代码,并将值赋予变量 r
    r = requests.get("http://www.jianshu.com/").text
    # etree.HTML 将变量 r  的字符串类型转换为 selector 对象,并赋值变量 html
    html = etree.HTML(r)
    # 用 XPath 提取文本,并放入一个列表中,把它封装成一个函数
    build_text_list = etree.XPath('//a[@class="title"]/text()')
    # 调用函数,并将值赋予变量 titles
    titles = build_text_list(html)
    
    # 使用 for 循环,打印
    for i in range(len(titles)):
        print("第 %d 篇文章的标题是:" % (i+1), titles[i])
    
    

    运行结果如下:

    "C:\Program Files\Python36\python.exe" E:/python3_project/ex_requests_homework2.py
    第 1 篇文章的标题是: 有了框架思维,就再也不用担心碎片学习了
    第 2 篇文章的标题是: 父母尚在苟且,我就不配追求诗和远方吗?
    第 3 篇文章的标题是: 中戏教师怒骂吴京:你就是个心理变态!
    第 4 篇文章的标题是: 小童话|偷书的熊
    第 5 篇文章的标题是: 宋朝进行时——写好看的历史(0036)
    第 6 篇文章的标题是: 简书对话创作大赛丨你还未来,我仍在等
    第 7 篇文章的标题是: 七夕联合征文丨这里有简书欠你的一个对象待领取
    第 8 篇文章的标题是: 后来看你恋爱才知道,我从来没有被你爱过
    第 9 篇文章的标题是: 收养个女儿给亲儿子摸,这是个屁文化
    第 10 篇文章的标题是: 请深情凝视这「二十二」道沧桑
    第 11 篇文章的标题是: 那些整天想着兼职赚钱的人最后都怎么样了?
    第 12 篇文章的标题是: 有没有钱,都可以活得很贵
    第 13 篇文章的标题是: 《二十二》:正义不会缺席,也许她们等不到了
    第 14 篇文章的标题是: 【对话创作大赛】一亿六千万
    第 15 篇文章的标题是: 25岁,因为没谈过恋爱,我被人狠狠地骂过
    第 16 篇文章的标题是: 我今年29岁,果断辞职选择再次做个北漂
    第 17 篇文章的标题是: 她们在等公道,日本政府却在等她们死去
    第 18 篇文章的标题是: 二十年后,他被母亲和妹妹亲手杀死(提示:18岁以下禁阅)
    第 19 篇文章的标题是: 种草│让人感到相见恨晚的零食清单(二)
    第 20 篇文章的标题是: 后人类世界的最终皈依
    
    Process finished with exit code 0
    
    

    相关文章

      网友评论

      • chengcxy:要取的内容 都在selector里用xpath提取
        这个题目如果还要取其他数据 这种方式逻辑看起来就不大好啦..
        import requests
        from lxml import etree
        html= requests.get("http://www.jianshu.com/").text
        selector = etree.HTML(html)
        titles = selector.xpath('//a[@class="title"]/text()')
        for i in range(len(titles)):
        print("第 %d 篇文章的标题是:" % (i+1), titles[i])
        Ubuay:@程程同学 好的👌
      • chengcxy:最好不要用 etree.XPath()

        获取一个网页源码变量html存储
        用etree.HTML(html) 实例化一个element对象赋值给 selector这个变量

      本文标题:【Python爬虫】-【第四周】02-作业

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