码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python爬虫request模块的get、post方法应用


           

    目录

    post方法使用

    一、确定爬取网站的数据

    二、分析数据类型和相应类型

    三、使用requetst模块方法进行爬取

    四、源代码分享

    get的方法使用

    一、分析抓取网站操作

    二、参数的分析和组成

    三、使用get模块方法进行爬取结果

     四、源代码分享

    思考和总结

    参考网站


            爬虫是当代最流行的数据抓取方法,使用python语言模拟浏览器爬取网站的数据应用到各个模块中,实现数据的价值和利用,达到某种商业的目的。不过因为被爬取的数据的类型和参数不同,所需要进行数据清洗和编码有所不同。下面介绍学习到的request模块方法中的get、post方法的使用。

    post方法使用

    一、确定爬取网站的数据

     我需要爬取的网站是百度翻译的结果,这个百度翻译结果是我任意输入一个英文翻译出来的结果。我想要爬取翻译以后的英文单词,将英文单词的数据统统抓取下来了。

    二、分析数据类型和相应类型

      按照F12看网络参数,刷一下页面,在Fetch/XHR中看到名称中最后一条数据显示正常,常规中网站状态是200码属于正常的响应码。

    请求的网站:

     

    载荷显示出请求的标识符,大概意思就是用户输入的数据。

     预览状态可以看到dog参数翻译出来的结果

     响应是我们要抓取的数据,不过数据类型是Json,需要转化。

    分析大致思路是:

            使用request模块导入,请求参数,请求符,伪造浏览器标识符,进行抓取数据,将数据格式化,抽取有用信息进行编码。

    三、使用requetst模块方法进行爬取

     编码结果:

    fileNama中有含有love的解释 

    四、源代码分享

    1. # -*- conding:utf-8 -*-
    2. #导入模块
    3. import requests
    4. import json
    5. if __name__ == '__main__':
    6. #需要爬取的网站的url(刷新界面最先开始请求的url参数值)
    7. post_url = 'https://fanyi.baidu.com/sug'
    8. #请求的浏览器伪装符
    9. headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
    10. word = input('enter a word:')
    11. #请求参数
    12. data={
    13. 'kw':word
    14. }
    15. #post方法抓取数据
    16. response=requests.post(url=post_url,data=data,headers=headers)
    17. print('post抓取下来的数据相应码:',response)
    18. #使用json格式进行编码和解码
    19. dic_obj = response.json()
    20. print('使用json转换出来的数据:',dic_obj)
    21. #给查询的阐述加上一个json后缀名
    22. fileName = word+'.json'
    23. #写入一个文件
    24. fp = open('fileName','w',encoding='utf-8')
    25. #使用json.dump编码和解码json数据
    26. json.dump(dic_obj,fp=fp,ensure_ascii=False)
    27. print('over python!!!')

    get的方法使用

    使用GET方法抓取豆瓣电影的数据,获取有用的数据,将数据本地化存储。

    一、分析抓取网站操作

            打开网站的源代码进行分析,观察到数据,网站的请求参数由网站地址加上请求参数组成。我们可以将URL作为编码中的抓取网站,载荷参数设定为请求值

    二、参数的分析和组成

    ​​​​​​​https://movie.douban.com/j/chart/top_list?(前部分是请求URL)type=11&interval_id=100:90&action=&start=0&limit=1(后半部分是请求参数,请求参数正好是载荷值)

     

    三、使用get模块方法进行爬取结果

     编码结果:

     douban.json文件中包涵了编译结果的记录

     四、源代码分享:

    1. # -*- conding:utf-8 -*-
    2. import requests
    3. import json
    4. if __name__ == '__main__':
    5. #定义爬虫的url
    6. post_url = 'https://movie.douban.com/j/chart/top_list'
    7. #浏览器请求标识符
    8. headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
    9. #请求参数确定
    10. param ={
    11. 'type':'24',
    12. 'interval_id' : '100:90',
    13. 'action' : '',
    14. 'start' : '40',
    15. 'limit' : '20'
    16. }
    17. #用get方法进行抓取
    18. response = requests.get(url=post_url,headers=headers,params=param)
    19. # print(response)
    20. #使用json方法进行解码
    21. list_data = response.json()
    22. print("获取到网页的json参数:",list_data)
    23. fp = open('./douban.json','w',encoding='utf-8')
    24. #使用json.dump进行写入,ascill编码为否。
    25. json.dump(list_data,fp=fp,ensure_ascii=False)
    26. print('over python!!!')

    思考和总结:

            什么时候用get方法,什么时候用post方法呢。那就在于我们使用F12刷新网站的时候,出来的标头,请求参数是get方法或者post方法了。针对不同的请求方法,使用不同的取值方式。

    参考网站:

    4.requests模块巩固深入案例之破解百度翻译_哔哩哔哩_bilibili

  • 相关阅读:
    HTML页面布局-使用div示例
    测试用例设计方法六脉神剑——第四剑:石破天惊,功能图法攻阵
    WDT实验
    pycharm 控制台中文乱码处理
    报表技术POI导入导出复杂样式Excel和百万数据(Java代码、模板、数据)
    【洛谷 P8753】[蓝桥杯 2021 省 AB2] 小平方 题解(数学+暴力枚举)
    Ubuntu 与Windows 之间搭建共享文件夹
    C++ Qt开发:Charts折线图绘制详解
    PHP-字符串函数
    Kibana生产上的常用功能总结
  • 原文地址:https://blog.csdn.net/yi247630676/article/details/126625627
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号