zoukankan      html  css  js  c++  java
  • python爬虫之requests模块

    引入

    什么是requests模块

    requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。在爬虫领域中占据着半壁江山的地位。

    为什么使用requess模块

    因为在使用urllib模块的时候,会有诸多不便之处,总结如下:

    • 手动处理url编码
    • 手动处理post请求参数
    • 处理cookie和代理操作繁琐

    使用requests模块:

    • 自动处理url编码
    • 自动处理post请求参数
    • 简化cookie和代理操作
    安装requests模块
    pip install requests
    
    需求:爬取搜狗指定词条搜索后的页面数据
    ###需求 爬取搜狗中指定词条搜搜后的页面数据
    import requests
    
    url ='https://www.sogou.com/'
    word = input('enter a word')
    headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:65.0) Gecko/20100101 Firefox/65.0'
    }
    params = {
        'query':word,
        'ie':'utf-8'
    }
    souguo_list=requests.get(url=url,headers=headers,params=params).text
    print(souguo_list)
    
    with open('./souguo.html','w',encoding='utf-8') as fp:
        fp.write(souguo_list)
    print('over')
    
    
    请求载体身份标识的伪装:

    User-Agent:请求载体身份标识,通过浏览器发起的请求,请求载体为浏览器,则该请求的User-Agent为浏览器的身份标识,使用爬虫程序发起的请求,则该请求的载体为爬虫程序

    反爬机制:某些网站会对访问该网站的请求中的User-Agent来进行捕获和判断,如果该请求的UA为爬虫程序,则拒绝向该请求提供数据

    反反爬策略:将爬虫程序的UA伪装成某一款浏览器的身份标识

    需求:爬取豆瓣电影分类排行榜https://movie.douban.com/中的电影详情数据
    import requests
    import urllib.request
    if __name__ == "__main__":
    
        #指定ajax-get请求的url(通过抓包进行获取)
        url = 'https://movie.douban.com/j/chart/top_list?'
    
        #定制请求头信息,相关的头信息必须封装在字典结构中
        headers = {
            #定制请求头中的User-Agent参数,当然也可以定制请求头中其他的参数
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
        }
    
        #定制get请求携带的参数(从抓包工具中获取)
        param = {
            'type':'5',
            'interval_id':'100:90',
            'action':'',
            'start':'0',
            'limit':'20'
        }
        #发起get请求,获取响应对象
        response = requests.get(url=url,headers=headers,params=param)
    
        #获取响应内容:响应内容为json串
        print(response.text)
    
  • 相关阅读:
    Gecko SDK (XULRunner SDK)最新版
    北京联通机顶盒-中兴B860A破解
    litepdf简单的PDF操作库
    BZOJ1925 [SDOI2010]地精部落
    BZOJ 最大公约数 (通俗易懂&效率高&欧拉函数)
    Tarjan无向图的割点和桥(割边)全网详解&算法笔记&通俗易懂
    最近公共祖先综合算法笔记
    严格次小生成树[BJWC2010]
    NOIP2016 Day1 T2 天天爱跑步(树上差分,LCA)
    树上差分算法笔记
  • 原文地址:https://www.cnblogs.com/mlhz/p/10462649.html
Copyright © 2011-2022 走看看