• 14_Python_爬虫利器Requests-HTML使用方法


    • requests-html 是基于现有的框架 PyQuery、Requests、lxml、beautifulsoup4等库进行了二次封装,作者将Requests设计的简单强大的优点带到了该项目中。

    • GiHub项目地址:https://github.com/kennethreitz/requests-html

    1.安装

    pip install requests-html
    

    2.教程与使用

    2.1 发送get请求

    from requests_html import HTMLSession
    
    session = HTMLSession()
    # 发出GET请求:
    resposse = session.get('http://news.qq.com/')
    

    2.2 按原样获取页面上所有链接的列表(不包括锚点):

    #按原样获取页面上所有链接的列表(不包括锚点):
    
    print(r.html.links)
    
    #输出内容:{'http://www.mohrss.gov.cn/', 'http://www.dahe.cn/', ......}
    

    2.3 以绝对形式抓取页面上所有链接的列表(锚点除外):

    # 以绝对形式抓取页面上所有链接的列表(锚点除外):
    
    print(r.html.absolute_links)
    
    #输出内容:{'http://new.qq.com/omn/20180630A0L1ED.html', 'http://news.qq.com/a/20180624/001511.htm', 'http://new.qq.com/omn/20180630A12MEU.html', ......}
    

    2.4使用CSS选择器选择一个元素:

    # 使用CSS选择器选择第一个元素:
    title = r.html.find('.f14>a', first=True).text
    print(title)
    # 输出内容:重磅!2018年版自贸试验区外资准入负面清单出炉
    
    #注意:first=True的意思是获取第一个元素,如果不加上就是获取所有的符合的元素
    

    2.5 attrs 获取元素的所有属性:

    # attrs  获取元素的所有属性:
    title = r.html.find('.f14>a', first=True)
    print(title.attrs)
    
    # 输出内容:{'target': '_blank', 'class': ('linkto',), 'href': 'http://new.qq.com/omn/FIN2018063001805300'}
    

    2.6 获取元素的html:

    #   获取元素的html:
    title = r.html.find('.f14>a', first=True)
    print(title.html)
    
    # 输出内容:<a target="_blank" class="linkto" href="http://new.qq.com/omn/FIN2018063001805300">重磅!2018年版自贸试验区外资准入负面清单出炉</a>&#13;
    

    2.7 搜索元素内的链接:

    #   搜索元素内的链接:
    title = r.html.find('.f14>a', first=True)
    print(title.absolute_links)
    
    # 输出内容:{'http://new.qq.com/omn/FIN2018063001805300'}
    

    2.8 在页面上搜索文字:

    #   在页面上搜索文字:
    title = r.html.search('重磅!{}年版自贸试验区外资准入负面清单出炉')[0]
    print(title)
    
    # 输出内容:2018
    

    2.9 XPath路径定位元素

    #   XPath路径定位元素
    title = r.html.xpath('//div[@class="text"]/em/a/text()')[0]
    print(title)
    
    # 输出内容:重磅!2018年版自贸试验区外资准入负面清单出炉
    

    2.10 解析本地文件

    from requests_html import HTML
    
    doc = """<a href='http://news.qq.com/'>"""
    
    html = HTML(html=doc)
    print(html.links)
    
    # 输出内容:{'http://news.qq.com/'}
    

    3.腾讯新闻爬取实例

    # 实例:获取腾讯新闻的标题和链接
    
    from requests_html import HTMLSession
    
    session = HTMLSession()
    
    r = session.get("http://news.qq.com/")
    # 通过CSS找到新闻标签
    news = r.html.find('.f14>a')
    for new in news:
        print(new.text)  # 新闻标题
        print(new.absolute_links)  # 新闻连接
    
    # 输出内容:
    # 重磅!2018年版自贸试验区外资准入负面清单出炉
    # {'http://new.qq.com/omn/FIN2018063001805300'}
    # 津巴布韦7月1日起对中国游客实行落地签证政策
    # {'http://news.qq.com/a/20180630/019314.htm'}
    # 侠客岛:听说特朗普要见普京?这首歌送给他们
    # {'http://new.qq.com/omn/20180630A1GASD00'}
    # 高等教育史上大动作:工科生“土”帽子要摘了
    # {'http://new.qq.com/omn/20180630G07FLY00'}
    # 日本小型火箭升空后4秒坠毁爆炸 现场火光冲天
    # {'http://new.qq.com/omn/20180630V157BT00'}
    # 洞庭湖“私家湖泊”新进展:铲除非法堤坝
    # {'http://new.qq.com/omn/20180630A0ILA600'}
    # 讨论很热烈!个税法修订征求意见数已超1.3万条
    # {'http://new.qq.com/zt/template/?id=FIN2018061901656900'}
    
    
  • 相关阅读:
    Using the @synchronized Directive
    What Are Threads?
    ios 线程同步
    CAAnimation 动画支撑系统
    UIView 动画 依赖与 CALayer的证据
    动画的定义
    Core Animation1-简介
    繁的是表象,简的是本质
    完全自定义动画
    线程安全与可重入
  • 原文地址:https://www.cnblogs.com/jasontang369/p/9616045.html
Copyright © 2020-2023  润新知