Python爬虫request模块的get、post方法应用

       

目录

post方法使用

一、确定爬取网站的数据

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

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

四、源代码分享

get的方法使用

一、分析抓取网站操作

二、参数的分析和组成

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

 四、源代码分享

思考和总结

参考网站


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

post方法使用

一、确定爬取网站的数据

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

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

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

请求的网站:

 

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

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

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

分析大致思路是:

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

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

 编码结果:

fileNama中有含有love的解释 

四、源代码分享

# -*- conding:utf-8 -*-
#导入模块
import requests
import json
if __name__ == '__main__':
    #需要爬取的网站的url(刷新界面最先开始请求的url参数值)
    post_url = 'https://fanyi.baidu.com/sug'
    #请求的浏览器伪装符
    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'}
    word = input('enter a word:')
    #请求参数
    data={
        'kw':word
    }
    #post方法抓取数据
    response=requests.post(url=post_url,data=data,headers=headers)
    print('post抓取下来的数据相应码:',response)
    #使用json格式进行编码和解码
    dic_obj = response.json()
    print('使用json转换出来的数据:',dic_obj)
    #给查询的阐述加上一个json后缀名
    fileName = word+'.json'
    #写入一个文件
    fp = open('fileName','w',encoding='utf-8')
    #使用json.dump编码和解码json数据
    json.dump(dic_obj,fp=fp,ensure_ascii=False)
    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文件中包涵了编译结果的记录

 四、源代码分享:

# -*- conding:utf-8 -*-
import requests
import json
if __name__ == '__main__':
    #定义爬虫的url
    post_url = 'https://movie.douban.com/j/chart/top_list'
    #浏览器请求标识符
    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'}
    #请求参数确定
    param ={
        'type':'24',
        'interval_id' : '100:90',
        'action' : '',
        'start' : '40',
        'limit' : '20'
    }
    #用get方法进行抓取
    response = requests.get(url=post_url,headers=headers,params=param)
    # print(response)
    #使用json方法进行解码
    list_data = response.json()
    print("获取到网页的json参数:",list_data)
    fp = open('./douban.json','w',encoding='utf-8')
    #使用json.dump进行写入,ascill编码为否。
    json.dump(list_data,fp=fp,ensure_ascii=False)
    print('over python!!!')

思考和总结:

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

参考网站:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值