• Python Requests 丨爬虫基础入门


    据说:看我文章的帅帅 都有个习惯:先点赞、收藏再看

    目录

    ??? 一、背景知识:requests

    ??? 1、pip安装requests

    ??? 2、pycharm安装requests

    3、一行代码使用requests

    ??4、requests常用调用(get、post)

    ??5、requests返回参数

    ?? 二、蜘蛛的背景知识

    ??1、蜘蛛的应用场景

    ??2、动态ip的好

    ??? 三、代理ip

    ?? 1、生成代理api

    ??? 2、api生成代理ip

    ??? 3、测试代理ip

    ??? 四、代理访问

    ? 文末福利丨包邮送书 ?

    ?? 1、三连送书

    ?? 2、资料白嫖


    ?? 联系作者?不吃西红柿?

    ?? 作者简介:CSDN 博客专家丨全站 Top 10??、HDZ 核心组成员、信息技术智库公号号主

    ?? 简历模板、PPT 模板、学习资料、技术互助。关注我,都给你

    很多人看西红柿的博客,花里胡哨的不知道从何学起,为了广大人民群众的根本利益,我决定写一个阅读指引,按照这个指引进行学习,多加练习,假以时日,势必能够……算了,还是看你自己能学多少以及能够坚持到哪里了。加油!少年!毕竟收藏 = 学会

    学习路径指引(点击解锁)

    定位

    适宜人群

    全网最全丨 Python 快速入门专栏

    入门级

    没有语言基础,感兴趣的大学生

    全网最黑丨 Python 黑科技专栏

    黑科技级

    有一定的基础,学以致用

    大数据知识体系丨集锦专栏

    工作/就业

    大数据领域从业者,就业升职加薪

    信息技术智库社区

    吹水/互助

    互联网相关人员,白嫖奖品丨官方活动

    一、背景知识:requests

    欲练此功、必须先了解背景知识。python之所以强大,一个重要的原因就是,拿来即用的代码库丰富!

    Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,也缺少很多实用的高级功能。

    更好的方案是使用requests

    • get方法

    • post方法

    • header参数,模拟用户

    • data参数,提交数据

    • proxies参数,使用代理

    1、pip安装requests

    pip?install?requests
    
    • 1

    2、pycharm安装requests

    举一反四,其它包的安装方法类似!

    3、示例:一行代码使用requests

    导入 Requests 模块:

    import?requests
    
    • 1

    然后,尝试获取某个网页。本例子中,我们来获取 Github 的公共时间线:

    r?=?requests.get('https://api.github.com/events')
    
    • 1

    4、requests常用调用(get、post)

    • GET 变量接受所有以 get 方式发送的请求,及浏览器地址栏中的 之后的内容。

    • POST 变量接受所有以 post 方式发送的请求,例如,一个 form 以 method=post 提交

    • REQUEST 支持两种方式发送过来的请求,即 post 和 get 它都可以接受,显示不显示要看传递方法,get 会显示在 url 中(有字符数限制),post 不会在 url 中显示,可以传递任意多的数据(只要服务器支持)。

    5、requests返回参数

    • r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败

    • r.text HTTP响应内容的字符串形式,即url对应的页面内容

    • r.encoding 从HTTP header中猜测的响应内容编码方式(

    • r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)

    • r.content HTTP响应内容的二进制形式

    ?? 二、蜘蛛的背景知识

    1、蜘蛛的应用场景

    玩python的小伙伴,相信都听过蜘蛛??吧,他有以下10个方面的妙用,本文中,西红柿??将带领大家玩一下。

    应用场景

    用途解释

    品牌保护

    通过监控网络上的商标来保护品牌。

    竞争对手情报

    在不被屏蔽的情况下,抓取竞争对手公开数据信息,

    广告验证

    确保广告在任何地点任何场景被正确的展示

    抓取和索引

    一个站点可能会将抓取限制为每分钟几个请求,但它们有数千万个页面。

    网站测试

    准确的测试始于设置正确的参数和正确的环境。

    邮件保护

    保护敏感数据通信,利用代理服务器应对网络攻击。

    股市数据

    大规模获取最新的股市信息。

    搜索引擎优化监控

    使用我们的实时爬虫,监控您的SEO实时情况。

    市场调查

    从任何位置获取准确的信息,例如可用性和价格。

    旅游聚合

    使用爬虫获取正确的机票价格和酒店价格。

    2、动态ip的好

    为什么要使用动态住宅IP?

    真正的住宅IP地址,这意味着在您请求访问时被阻止的可能性较小并且成功率更高。

    • 无限并发

    • IP可用率>98%

    • API调用频率:1秒

    • HTTP、HTTPS和SOCKS5 协议

    三、代理ip

    我使用的是代理ip网站,可以白嫖50M流量:

    http://www.ipidea.net/?utm-source=csdn_bcxhx&utm-keyword=?csdn_bcxhx?

    1、生成代理api

    到此,你拿到了代理ip的api链接,记得复制保存,等下要用。

    如果你访问这个api链接,会发现你拿到了ip和端口。

    2、api生成代理ip

    ????def?get_proxie(self,?api_url):
    ????????#?微信搜:信息技术智库,回复'源码'
    ????????user_agent?=?'Mozilla/5.0?(Linux;?Android?10;?EVR-AL00?Build/HUAWEIEVR-AL00;?wv)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Version/4.0?Chrome/74.0.3729.186?Mobile?Safari/537.36?baiduboxapp/11.0.5.12?(Baidu;?P1?10)'
    ????????headers?=?{
    ????????????'User-Agent':?user_agent}
    ????????res?=?requests.post(api_url,headers=headers,?verify=True)
    ????????proxie?=?"https://%s"%(res.text)
    ????????proxies?=?{'http':?proxie}
    ????????is_valid,?proxies?=?visitor.proxie_check(proxies)
    ????????return?is_valid,?proxies
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3、测试代理ip

    ??def?proxie_check(self,?proxies):
    ????????user_agent?=?'Mozilla/5.0?(Linux;?Android?10;?EVR-AL00?Build/HUAWEIEVR-AL00;?wv)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Version/4.0?Chrome/74.0.3729.186?Mobile?Safari/537.36?baiduboxapp/11.0.5.12?(Baidu;?P1?10)'
    ????????headers?=?{'User-Agent':?user_agent}
    ????????res?=?requests.get("https://bbs.csdn.net/forums/ITID",?headers=headers,?proxies=proxies)
    ????????is_valid?=?0
    ????????if?res.status_code?==?200?and?"msg"?not?in?str(proxies):
    ????????????is_valid?=?1
    ????????return?is_valid,?proxies
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    四、代理访问

    在上一步中,我们拿到了代理ip。 西红柿使用的是ipidea: ?可白嫖50M流量?

    当然,你如果还有其他方法,欢迎架微notomoto 进Python裙交流。

    代码解释:

    • url为访问的地址

    • proxies=proxie 为使用代理

      class?Visitor(object):
      ???def?init(self):
      ???“”“Inits?Visitor?with?blah.”“”
      ???self.eggs?=?0

      ???@time_decorator
      ???def?proxie_visit(self,?proxie?,url):
      ???user_agent_list?=?[
      ???‘Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?’
      ???‘Chrome/45.0.2454.85?Safari/537.36?115Browser/6.0.3’,
      ???‘Mozilla/5.0?(Macintosh;?U;?Intel?Mac?OS?X?10_6_8;?en-us)?AppleWebKit/534.50?(KHTML,?like?Gecko)?Version/5.1?Safari/534.50’,
      ???‘Mozilla/5.0?(Windows;?U;?Windows?NT?6.1;?en-us)?AppleWebKit/534.50?(KHTML,?like?Gecko)?Version/5.1?Safari/534.50’,
      ???‘Mozilla/4.0?(compatible;?MSIE?8.0;?Windows?NT?6.0;?Trident/4.0)’,
      ???‘Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?6.0)’,
      ???‘Mozilla/5.0?(Windows?NT?6.1;?rv:2.0.1)?Gecko/20100101?Firefox/4.0.1’,
      ???‘Opera/9.80?(Windows?NT?6.1;?U;?en)?Presto/2.8.131?Version/11.11’,
      ???‘Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_7_0)?AppleWebKit/535.11?(KHTML,?like?Gecko)?Chrome/17.0.963.56?Safari/535.11’,
      ???‘Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1;?Trident/4.0;?SE?2.X?MetaSr?1.0;?SE?2.X?MetaSr?1.0;?.NET?CLR?2.0.50727;?SE?2.X?MetaSr?1.0)’,
      ???‘Mozilla/5.0?(compatible;?MSIE?9.0;?Windows?NT?6.1;?Trident/5.0’,
      ???‘Mozilla/5.0?(Windows?NT?6.1;?rv:2.0.1)?Gecko/20100101?Firefox/4.0.1’,
      ???]
      ???#?随机挑选一个?user_agent
      ???user_agent?=?random.choice(user_agent_list)
      ???Referer=?‘https://www.baidu.com/’???#?伪装成从baidu
      ???headers?=?{
      ???‘Referer’:?Referer,
      ???‘User-Agent’:?user_agent}
      ???#?visit
      ???res?=?requests.get(url,?headers=headers,?proxies=proxie)
      ???return?res.text

    获取完整代码:公众号信息技术智库,回复源码

    到此,西红柿演示了:使用代码ip访问网站,这是一个简单的蜘蛛原型。 基于这个加以优化,可以实现很多有意思的事情,嘿嘿嘿,点到为止。


    文末福利丨包邮送书

    ?? 送书规则

    1、两种参与方式

    • 三连文章:西红柿会在发文后2-3天,从评论区选出4-6位走心评论,需要同时收藏和点赞。

    • 访问社区:在社区点赞评论或发帖,即会出现在《社区积分榜》,每周挑选2-3位小伙伴。?社区地址:https://bbs.csdn.net/forums/ITID

    2、中奖通知:CSDN评论区、私信、Python全栈技术群里通知

    3、补充说明:选中者提供收货地址和想要的书名,很多人问我该选哪一本,大家可以根据兴趣、参考价值来选,西红柿把官网价也附上了。

    包邮送书书单(中奖者自选)

    官网地址

    官网价

    《Python 3.x基础教程》

    https://item.jd.com/12542555.html

    60

    《Python编程完全自学教程》

    https://item.jd.com/13130464.html

    99

    《Python入门到人工智能实战》

    https://item.jd.com/12648361.html

    79

    《Python量化金融编程从入门到精通》

    https://item.jd.com/13045490.html

    79

    《Python网络编程从入门到精通》

    https://item.jd.com/12659295.html

    69

    《人工智能数学基础与 Python机器学习实战》

    https://item.jd.com/13504186.html

    79

    《git从入门到精通》

    https://item.jd.com/12793056.html

    49

    《黑客攻防从入门到精通》

    https://item.jd.com/12051029.html

    69

    ?? Python理论基础:全网最全丨 Python 快速入门专栏

    ?? Python练习应用:全网最黑丨 Python 黑科技专栏

    ?? 2、资料白嫖、技术互助

    公众号

    微信搜【信息技术智库】你的技术加油站

    ?? 硬核资料

    8大类丨20G 学习资料 + 行业资料 + 面试资料

    ?? 交流加群

    互帮互助、指点迷津、求资源在群里喊一声

    ?? 面试题库

    技术群小伙伴们共同投稿,热乎的大厂面试真题

    ?? 源码获取

    微信搜【信息技术智库】回复源码

    ??? 领取资料、技术互助???

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    一文生成猫眼电影热榜词云
    企业端固废动态监测管控系统有哪些功能组成
    基于51单片机蓝牙智能控制风扇-proteus仿真-源程序
    / 将 Month 转换为整数:int monthAsInt = static_cast<int>(month);“static_cast”是干啥的?
    [汇编语言实验]查看CPU和内存,用机器指令和汇编指令编程
    PCL 计算两空间直线的交点
    Flink---1、概述、快速上手
    Xcode 15 编译出错问题解决
    刷题知识回顾《八》完全平方数搜索二维矩阵
    CSRF 漏洞学习笔记
  • 原文地址:https://blog.csdn.net/m0_67402236/article/details/126113896