据说:看我文章的帅帅 都有个习惯:先点赞、收藏再看
目录
??2、动态ip的好
?? 联系作者:?不吃西红柿?
?? 作者简介:CSDN 博客专家丨全站 Top 10??、HDZ 核心组成员、信息技术智库公号号主
?? 简历模板、PPT 模板、学习资料、技术互助。关注我,都给你
很多人看西红柿的博客,花里胡哨的不知道从何学起,为了广大人民群众的根本利益,我决定写一个阅读指引,按照这个指引进行学习,多加练习,假以时日,势必能够……算了,还是看你自己能学多少以及能够坚持到哪里了。加油!少年!毕竟收藏 = 学会
学习路径指引(点击解锁)
定位
适宜人群
入门级
没有语言基础,感兴趣的大学生
黑科技级
有一定的基础,学以致用
工作/就业
大数据领域从业者,就业升职加薪
吹水/互助
互联网相关人员,白嫖奖品丨官方活动
欲练此功、必须先了解背景知识。python之所以强大,一个重要的原因就是,拿来即用的代码库丰富!
Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,也缺少很多实用的高级功能。
更好的方案是使用requests
get方法
post方法
header参数,模拟用户
data参数,提交数据
proxies参数,使用代理
pip?install?requests
举一反四,其它包的安装方法类似!
导入 Requests 模块:
import?requests
然后,尝试获取某个网页。本例子中,我们来获取 Github 的公共时间线:
r?=?requests.get('https://api.github.com/events')
GET 变量接受所有以 get 方式发送的请求,及浏览器地址栏中的 之后的内容。
POST 变量接受所有以 post 方式发送的请求,例如,一个 form 以 method=post 提交
REQUEST 支持两种方式发送过来的请求,即 post 和 get 它都可以接受,显示不显示要看传递方法,get 会显示在 url 中(有字符数限制),post 不会在 url 中显示,可以传递任意多的数据(只要服务器支持)。
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
r.text HTTP响应内容的字符串形式,即url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式(
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
玩python的小伙伴,相信都听过蜘蛛??吧,他有以下10个方面的妙用,本文中,西红柿??将带领大家玩一下。
应用场景
用途解释
品牌保护
通过监控网络上的商标来保护品牌。
竞争对手情报
在不被屏蔽的情况下,抓取竞争对手公开数据信息,
广告验证
确保广告在任何地点任何场景被正确的展示
抓取和索引
一个站点可能会将抓取限制为每分钟几个请求,但它们有数千万个页面。
网站测试
准确的测试始于设置正确的参数和正确的环境。
邮件保护
保护敏感数据通信,利用代理服务器应对网络攻击。
股市数据
大规模获取最新的股市信息。
搜索引擎优化监控
使用我们的实时爬虫,监控您的SEO实时情况。
市场调查
从任何位置获取准确的信息,例如可用性和价格。
旅游聚合
使用爬虫获取正确的机票价格和酒店价格。
为什么要使用动态住宅IP?
真正的住宅IP地址,这意味着在您请求访问时被阻止的可能性较小并且成功率更高。
无限并发
IP可用率>98%
API调用频率:1秒
HTTP、HTTPS和SOCKS5 协议
我使用的是代理ip网站,可以白嫖50M流量:
http://www.ipidea.net/?utm-source=csdn_bcxhx&utm-keyword=?csdn_bcxhx?
到此,你拿到了代理ip的api链接,记得复制保存,等下要用。
如果你访问这个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
??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
在上一步中,我们拿到了代理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 黑科技专栏
公众号
微信搜【信息技术智库】你的技术加油站
?? 硬核资料
8大类丨20G 学习资料 + 行业资料 + 面试资料
?? 交流加群
互帮互助、指点迷津、求资源在群里喊一声
?? 面试题库
技术群小伙伴们共同投稿,热乎的大厂面试真题
?? 源码获取
微信搜【信息技术智库】回复源码
??? 领取资料、技术互助???
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦