爬虫requests模块 入门到入狱 :基础知识+实战分析

发布时间:2022-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了爬虫requests模块 入门到入狱 :基础知识+实战分析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

爬虫requests模块 入门到入狱 :基础知识+实战分析

📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照😜😜😜 🏅🏅🏅CSDN Python领域新星创作者,大二在读,欢迎大家找我合作学习 💕入门须知F1a;这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺 🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈 🌟🌟🌟✨✨✨

前言:requests库其实和urllib库是差不多的,但是urllib库的话有点过时了,所以说一般都是用的request库,下面一起来学习一下吧

爬虫requests模块基础入门+实战分析

@H_512_29@
  • 一、基本使用
    • 1.使用文档
    • 2.安装
    • 3.response的属性以及类型
  • 二、简单对比urllib和requests
    • 1.urllib
    • 2.requests
  • 三、requests方法应用
    • 1.requests的get请求
      • (1)请求百度界面
      • (2)特点总结
    • 2.requests的post请求
      • (1)请求百度翻译
      • (2)特点总结
    • 3.requests的cookie代理
      • (1)登录古诗文网
      • (2)难点
  • 四、自动识别验证码
    • 1.首先找到`超级鹰`网站:
    • 2.然后在开发文档中找到Python:
    • 3.修改代码
  • ❤️往期文章推荐❤️:
  • 一、基本使用

    1.使用文档

    官方文档 http://cn.python‐requests.org/zh_CN/latest/

    快速上手 http://cn.python‐requests.org/zh_CN/latest/user/quickstart.htML

    2.安装

    pip install requests
    

    安装成功后会有successfully的提示,已安装会有Requirement already satisfied的提示:

    @H_738_126@

    3.response的属性以及类型

    1.类型

    ```html
    import requests
    url = 'https://www.baidu.COM/'
    response = requests.get(url = url)
    # 一种类型 六个属性
    # Response类型
    PRint(tyPE(response))
    
    <class 'requests.models.Response'>
    

    2.以字符串形式来返回网页的

    # 以字符串形式来返回网页的源码
    print(response.text)
    

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    3.返回一个url地址

    # 返回一个url地址
    print(response.url)
    
    https://www.baidu.com/
    

    4.返回的是二进制数据

    # 返回的是二进制数据
    print(response.content)
    

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    5.返回响应的状态码

    # 返回响应的状态码
    print(response.status_code)
    
    200
    

    6.返回的是响应头

    # 返回的是响应头
    print(response.headers)
    

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    二、简单对比urllib和requests

    1.urllib

    # (1)一个类型以及六个方法
    # (2)get请求
    # (3)post请求  百度翻译
    # (4)ajsx的get请求
    # (5)ajax的post请求
    # (6)cookie登录 微博
    # (7)代理
    

    2.requests

    # (1)一个类型 六个属性
    # (2)get请求
    # (3)post请求
    # (4)代理
    # (5)cookie 验证码
    

    三、requests方法应用

    1.requests的get请求

    (1)请求百度界面

    import requests
    url = 'https://www.baidu.com/s'
    headers={
        'User-Agent': ';mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
    }
    data = {
        'wd': '北京'
    }
    
    # url 请求资源路径
    # params 参数
    # kwargs 字典
    response = requests.get(url=url, params=data, headers=headers)
    content = response.text
    print(content)
    

    (2)特点总结

    1.参数使用params传递 2.参数无需urlencode编码 3.无需请求对象定制 4.请求资源路径中的?可以加也可以不加

    2.requests的post请求

    (1)请求百度翻译

    # -*-coding:utf-8 -*-
    # @Author:到点了,心疼徐哥哥
    # 奥利给干!!!
    import requests
    import json
    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/96.0.4664.45 Safari/537.36'
    }
    data = {
        'kw':'eye'
    }
    # url请求地址
    # data请求参数
    # kwargs 字典
    response = requests.post(url=url, data=data, headers=headers)
    content = response.text
    
    print(content)
    obj = json.loads(content,encoding='utf-8')
    print(obj)
    

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    (2)特点总结

    1.post请求不需要编解码 2.post请求的参数是data 3.不需要请求对象的定制

    3.requests的cookie代理

    (1)登录古诗文网

    1.打开古诗文网: 古诗文网

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    2.登录界面:

    # 登录界面
    url = 'https://so.gushiwen.cn/user/login.aspx?From=http://so.gushiwen.cn/user/collect.aspx'
    
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
    }
    

    3.获取页面的源码

    # 获取页面的源码:
    response = requests.get(url=url,headers=headers)
    content = response.text
    

    4.解析页面源码,然后获取’__VIEWSTATE’和’__VIEWSTATEGENERATOR’

    # 解析页面源码,然后获取'__VIEWSTATE'和'__VIEWSTATEGENERATOR'
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(content,'lxml')
    
    # 获取'__VIEWSTATE'
    viewstate = soup.select('#__VIEWSTATE')[0].attrs.get('value')
    
    # 获取'__VIEWSTATEGENERATOR'
    viestategener = soup.select('#__VIEWSTATEGENERATOR')[0].attrs.get('value')
    

    5.获取验证码图片

    # 获取验证码图片
    code = soup.select('#imgCode')[0].attrs.get('src')
    code_url ='	https://so.gushiwen.cn'+code
    

    6.获取图片验证码后,保存到本地,然后观察验证码进行输入。

    # 获取图片验证码后,保存到本地,然后观察验证码进行输入。
    # requests里面有一个session()方法,通过session的返回值 就能使用请求变成一个对象
    session = requests.session()
    # 验证码的url的内容
    response_code = session.get(code_url)
    # 注意此时要使用二进制数据
    content_code = response_code.content
    # wb的模式就是将二进制数据写入文件
    with open('code.jpg','wb')as fp:
        fp.write(content_code)
    
    code_name = input('请输入你的验证码:')

    7.点击登录

    url_post = 'https://so.gushiwen.cn/user/LOGin.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
    
    data_post = {
        '__VIEWSTATE':viewstate ,
        '__VIEWSTATEGENERATOR':viestategener ,
        'from': 'http://so.gushiwen.cn/user/collect.aspx',
        'email': '18300396393',
        'pwd': '20020102XYPxyp',
        'code': code_name,
        'denglu':'登录',
    }
    response_post = session.post(url=url,headers=headers,data=data_post)
    content_post = response_post.text
    with open('gushiwen.html','w',encoding='utf-8') as fp:
        fp.write(content_post)
    

    8.获取动态验证码

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    9.打开得到的网站:

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    进入:

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    成功撒花!

    (2)难点

    1.隐藏域 2.验证码

    四、自动识别验证码

    1.首先找到超级鹰网站:

    超级鹰

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    可用账号及密码: 账号:action 密码:action

    2.然后在开发文档中找到Python:

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    进入之后进行Python语言Demo下载。

    3.修改代码

    将下载好的Demo放入我们我们的工程文件中去,观察其代码: 1.将此处换成我们的用户名和代码

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    2.按照提示来替换我们的id:

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    3.生成我们自己的一个软件id:

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    4.最后在Print后面加上(),就可以啦! 5.由于返回字典,就可以通过键值对对应关系,找到我们的验证码的值了:

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    4.源码分享:

    #!/usr/bin/env python
    # coding:utf-8
    
    import requests
    from hashlib import md5
    
    class Chaojiying_Client(object):
    
        def __init__(self, username, password, soft_id):
            self.username = username
            password =  password.encode('utf8')
            self.password = md5(password).hexdigest()
            self.soft_id = soft_id
            self.base_params = {
                'user': self.username,
                'pass2': self.password,
                'softid': self.soft_id,
            }
            self.headers = {
                'Connection': 'Keep-Alive',
                'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
            }
    
        def PostPic(self, im, codetype):
            """
            im: 图片字节
            codetype: 题目类型 参考 http://www.chaojiying.com/price.html
            """
            params = {
                'codetype': codetype,
            }
            params.update(self.base_params)
            files = {'userfile': ('ccc.jpg', im)}
            r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
            return r.json()
    
        def ReportError(self, im_id):
            """
            im_id:报错题目的图片ID
            """
            params = {
                'id': im_id,
            }
            params.update(self.base_params)
            r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
            return r.json()
    
    
    if __name__ == '__main__':
    	chaojiying = Chaojiying_Client('action', 'action', '925358')	#用户中心>>软件ID 生成一个替换 96001
    	im = open('a.jpg', 'rb').read()													#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    	print(chaojiying.PostPic(im, 1902).get('pic_str'))										#1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()
    
    
    

    ❤️往期文章推荐❤️:

    Python爬虫❤️ Urllib用法合集——⚡一键轻松入门爬虫⚡

    爬虫中的恋爱学心理你get了吗?一杯星巴克温暖你的整个冬天——爬虫bs4解析从入门到入坑

    ❤️1024不孤单!❤️xpath爬虫——你最忠实的伴侣:老规矩给我一分钟,万字教你入手Xpath!⚡

    Python爬虫实战❤️ 从零开始分析页面,抓取数据——爬取豆瓣电影任意页数 看不懂你来找我!❤️

    天青色等烟雨 爬虫在等你❤️post请求⚡cookie登录⚡handler处理器

    🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了 ❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~

    爬虫requests模块 入门到入狱 :基础知识+实战分析

    脚本宝典总结

    以上是脚本宝典为你收集整理的爬虫requests模块 入门到入狱 :基础知识+实战分析全部内容,希望文章能够帮你解决爬虫requests模块 入门到入狱 :基础知识+实战分析所遇到的问题。

    如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。