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)
    
  • 相关阅读:
    zbb20181207 springboot @ConfigurationProperties使用
    zbb20181206 logback,lombok 默认日志logback配置解析
    Spring Boot (8) 全局异常处理
    Spring Boot (7) JdbcTemplate访问数据库
    Spring Boot (6) Spring Data JPA
    Spring Boot (4) 静态页面和Thymeleaf模板
    Spring Boot (3) 热部署devtools
    Spring Boot (2) Restful风格接口
    Spring Boot (1) 构建第一个Spring Boot工程
    idea使用maven搭建ssm框架实现登陆商品增删改查
  • 原文地址:https://www.cnblogs.com/mlhz/p/10462649.html
Copyright © 2011-2022 走看看