链接

链接

爬取知乎热榜话题:

链接

BeautifulSoup的使用1:

    url = 'http://www.cntour.cn/'strhtml = requests.get(url)soup = BeautifulSoup(strhtml.text, 'lxml')# data = soup.select('#main>div>div.mtop.firstMod.clearfix>div.centerBox>ul.newsList>li>a')data = soup.select('#main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li > a')print(data)for item in data:result = {'title': item.get_text(),'link': item.get('href'),'ID': re.findall('\d+', item.get('href'))}print(result)输出如下:
[<a href="http://www.cntour.cn/news/15009/" target="_blank" title="观察:就地过年带火周边游">观察:就地过年带火周边游</a>, <a href="http://www.cntour.cn/news/14998/" target="_blank" title="国务院:规范落实春节返乡疫情防控要求">国务院:规范落实春节返乡疫情防控要求</a>, <a href="http://www.cntour.cn/news/14997/" target="_blank" title="消费新力量,撬动供给的新引擎">消费新力量,撬动供给的新引擎</a>, <a href="http://www.cntour.cn/news/14993/" target="_blank" title="2021年文旅产业发展的五大趋势">2021年文旅产业发展的五大趋势</a>, <a href="http://www.cntour.cn/news/14988/" target="_blank" title="2021中国旅游向内发力">[2021中国旅游向内发力]</a>, <a href="http://www.cntour.cn/news/14987/" target="_blank" title="2020中国旅游浴火重生">[2020中国旅游浴火重生]</a>, <a href="http://www.cntour.cn/news/14977/" target="_blank" title="“云旅游”赋能旅游业创新发展">[“云旅游”赋能旅游业创]</a>, <a href="http://www.cntour.cn/news/14970/" target="_blank" title="旅游为幸福生活添彩">[旅游为幸福生活添彩]</a>, <a href="http://www.cntour.cn/news/14965/" target="_blank" title="RCEP为旅游业带来机遇">[RCEP为旅游业带来机遇]</a>, <a href="http://www.cntour.cn/news/14943/" target="_blank" title="大数据读懂中国旅游新引力">[大数据读懂中国旅游新引]</a>, <a href="http://www.cntour.cn/news/13916/" target="_blank" title="假日旅游复苏 市场平稳有序">[假日旅游复苏 市场平稳]</a>, <a href="http://www.cntour.cn/news/13907/" target="_blank" title="全球旅游业呈现持续向好势头">[全球旅游业呈现持续向好]</a>]
{'link': 'http://www.cntour.cn/news/15009/', 'title': '观察:就地过年带火周边游', 'ID': ['15009']}
{'link': 'http://www.cntour.cn/news/14998/', 'title': '国务院:规范落实春节返乡疫情防控要求', 'ID': ['14998']}
{'link': 'http://www.cntour.cn/news/14997/', 'title': '消费新力量,撬动供给的新引擎', 'ID': ['14997']}
{'link': 'http://www.cntour.cn/news/14993/', 'title': '2021年文旅产业发展的五大趋势', 'ID': ['14993']}
{'link': 'http://www.cntour.cn/news/14988/', 'title': '[2021中国旅游向内发力]', 'ID': ['14988']}
{'link': 'http://www.cntour.cn/news/14987/', 'title': '[2020中国旅游浴火重生]', 'ID': ['14987']}
{'link': 'http://www.cntour.cn/news/14977/', 'title': '[“云旅游”赋能旅游业创]', 'ID': ['14977']}
{'link': 'http://www.cntour.cn/news/14970/', 'title': '[旅游为幸福生活添彩]', 'ID': ['14970']}
{'link': 'http://www.cntour.cn/news/14965/', 'title': '[RCEP为旅游业带来机遇]', 'ID': ['14965']}
{'link': 'http://www.cntour.cn/news/14943/', 'title': '[大数据读懂中国旅游新引]', 'ID': ['14943']}
{'link': 'http://www.cntour.cn/news/13916/', 'title': '[假日旅游复苏 市场平稳]', 'ID': ['13916']}
{'link': 'http://www.cntour.cn/news/13907/', 'title': '[全球旅游业呈现持续向好]', 'ID': ['13907']}

BeautifulSoup的使用2:

    pre = {'User-agent': 'Mozilla/5.0'}res = requests.get("https://www.zhihu.com/billboard", headers=pre)rep = res.textsoup = BeautifulSoup(rep, "html.parser")pre = {'User-agent': 'Mozilla/5.0'}try:res = requests.get("https://www.zhihu.com/billboard", headers=pre)# print(res.raise_for_status)rep = res.textexcept:print("连接失败")try:soup = BeautifulSoup(rep, "html.parser")con = soup.find_all('div', class_="HotList-itemTitle")for i in range(len(con)):print(con[i].text)except:print("获取失败")输出如下:
23 岁女生在货拉拉车上跳窗身亡,司机曾三次偏航,案件有哪些线索与疑点?
KTV 的服务员隔几分钟就往包房里看一眼,到底是在看什么?
意外发现成绩还算不错的女儿寒假作业居然直接抄答案,我怎么办?
昨天下午和一个男生相亲了,他主动加了我的微信,现在是第二天都没联系我,他是什么意思呢   ?
如何看待多所大学开学时间朝令夕改,引发大量学生改签后不弥补经济损失,又取消变动?
如何看待 FPX 公告英雄联盟分部队内打野选手 Bo 在 LDL 期间受裹挟参与不当竞技行为?
《你好,李焕英》总票房超过《唐人街探案 3》,对此你怎么看?
如何看待广西一女教师为救被猥亵女学生「越级报警」,因为被查出无教师资格证而丢了工作改卖螺蛳粉?
男子入职两小时猝死,家属索赔 140 万,公司应承担多少责任?
据说美国科学家发现导致近视的不是用眼疲劳,而是眼睛缺少光照,相关科学依据是什么?
孩子博士毕业,华为 65 万年薪,公务员 18 万年薪,应该如何选择?
宅追二次元,饭圈女孩追星,为什么同样是「追」,大家都只骂饭圈,而二次元骂的比较少?
2021 考研成绩即将公布,你有什么想说的?
沪深广磁悬浮要来了,深圳 2.5 小时到上海,3.6 小时到北京,将会给生活带来哪些影响?
如何看待江苏一男子假装跳河自杀,女友下河相救时遭拖拽溺水身亡?
特斯拉一体压铸成本降低,为什么其他汽车厂家此前没有类似尝试?
如何看待花旗银行错汇 5 亿美元,法院判决不用还这一案子?
印度发现 240 种变异新冠病毒,为什么印度的变异病毒这么多?该怎么应对?
如何评价南京大学关于春季学期开学的通知?
如何看待 gidle 成员徐穗珍被爆出校园霸凌?
刘德华主演的《人潮汹涌》怎么就票房扑街了?
女生在货拉拉车上跳窗身亡,货拉拉或将承担哪些责任?车内无录音录像设备,货拉拉在服务经营方面有哪些问题?
公积金 4000,工资大概多少?
第一次买螺蛳粉哪个牌子的好吃?
如何评价剧版《斗罗大陆》最后一集?
妈妈把嫂子送给她的项链送给小姑子了,嫂子不开心了,合理吗?
怎么理解「 善战者无赫赫之功 」?
有人真的通过 NS 上的《健身环大冒险》游戏减肥了吗?
为人父母,你能接受自己的孩子一生「平庸」吗?
华为折叠屏新旗舰今日即将发布,有哪些值得关注的点?
《你好,李焕英》中的王琴是一个什么样的角色?
其他哺乳动物对难闻的体味发情,为什么人类相反对体味感到扫兴?
刚过完年手上有点压岁钱,不知该买游戏机还是买四大名著?
考研估分与实际成绩一般相差多少?
为什么人一定要谈恋爱呢?
请问有什么动漫番适合跟父母一起投屏看的呢?
朱元璋为什么不删改他做过乞丐的历史?
如何评价《无职转生》第七集?
2020 年口红销量下滑近半,眼妆产品火爆,戴口罩的你还会涂口红吗?疫情对美妆产业有多大影响?
为什么现在的娱乐圈很难再出现张国荣,林青霞等风华绝代的明星?
你们希望《创造营 2021》里谁出道?
如何看待《原神》限定四星武器千岩古剑和千岩长枪?
长期吃素会影响健康吗?
如何禁止学生启用防火墙防止学生退出电子教室?
爸妈不同意的恋情怎么办?
我国将如何以全面推进乡村振兴促进民族复兴?
《赛博朋克 2077》失败了吗?
iPad 上有什么用来学习的优秀 App 推荐?
住在山里是种什么样的体验?
《庆余年》讲的是什么故事?

爬虫攻防战

爬虫是模拟人的浏览访问行为,进行数据的批量抓取。当抓取的数据量逐渐增大时,会给被访问的服务器造成很大的压力,甚至有可能崩溃。换句话就是说,服务器是不喜欢有人抓取自己的数据的。那么,网站方面就会针对这些爬虫者,采取一些反爬策略。

服务器第一种识别爬虫的方式就是通过检查连接的 useragent 来识别到底是浏览器访问,还是代码访问的。如果是代码访问的话,访问量增大时,服务器会直接封掉来访 IP。

那么应对这种初级的反爬机制,我们应该采取何种举措?

还是以前面创建好的爬虫为例。在进行访问时,我们在开发者环境下不仅可以找到 URL、Form Data,还可以在 Request headers 中构造浏览器的请求头,封装自己。服务器识别浏览器访问的方法就是判断 keyword 是否为 Request headers 下的 User-Agent,如图 22 所示。


图 22

因此,我们只需要构造这个请求头的参数。创建请求头部信息即可,代码如下:

headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
response = request.get(url,headers=headers)

写到这里,很多读者会认为修改 User-Agent 很太简单。确实很简单,但是正常人1秒看一个图,而个爬虫1秒可以抓取好多张图,比如 1 秒抓取上百张图,那么服务器的压力必然会增大。也就是说,如果在一个 IP 下批量访问下载图片,这个行为不符合正常人类的行为,肯定要被封 IP。

其原理也很简单,就是统计每个IP的访问频率,该频率超过阈值,就会返回一个验证码,如果真的是用户访问的话,用户就会填写,然后继续访问,如果是代码访问的话,就会被封 IP。

这个问题的解决方案有两个,第一个就是常用的增设延时,每 3 秒钟抓取一次,代码如下:

import time
time.sleep(3)

但是,我们写爬虫的目的是为了高效批量抓取数据,这里设置 3 秒钟抓取一次,效率未免太低。其实,还有一个更重要的解决办法,那就是从本质上解决问题。

不管如何访问,服务器的目的就是查出哪些为代码访问,然后封锁 IP。解决办法:为避免被封 IP,在数据采集时经常会使用代理。当然,requests 也有相应的 proxies 属性。

首先,构建自己的代理 IP 池,将其以字典的形式赋值给 proxies,然后传输给 requests,代码如下:

proxies={"http":"http://10.10.1.10:3128","https":"http://10.10.1.10:1080",
}
response = requests.get(url, proxies=proxies)
扩展阅读

本文仅对 Python 爬虫及实现过程做了简明扼要地介绍,仅能使初学者对 python 爬虫有一个浅显的认识,并不能让你完全掌握 Python 爬虫。

如果你想对 Python 爬虫有更深入的了解,我推荐你阅读:

  • Python爬虫入门教程
  • Python3网络爬虫入门教程
  • Python爬虫教程——慕课网

Python爬虫原理与简单示例代码相关推荐

  1. python爬虫原理-python学习之python爬虫原理

    原标题:python学习之python爬虫原理 今天我们要向大家详细解说python爬虫原理,什么是python爬虫,python爬虫工作的基本流程是什么等内容,希望对这正在进行python爬虫学习的 ...

  2. python学习之python爬虫原理

    今天我们要向大家详细解说python爬虫原理,什么是python爬虫,python爬虫工作的基本流程是什么等内容,希望对这正在进行python爬虫学习的同学有所帮助! 前言 简单来说互联网是由一个个站 ...

  3. python爬取数据的原理_python学习之python爬虫原理

    原标题:python学习之python爬虫原理 今天我们要向大家详细解说python爬虫原理,什么是python爬虫,python爬虫工作的基本流程是什么等内容,希望对这正在进行python爬虫学习的 ...

  4. python爬虫抓取图片-简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

  5. python代码翻译-用python实现百度翻译的示例代码

    用python实现百度翻译,分享给大家,具体如下: 首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写自己的一 ...

  6. python爬虫原理-python爬虫原理详细讲解

    原标题:python爬虫原理详细讲解 一 .爬虫是什么 1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. 2.互联网建立的目的?互联网的 ...

  7. python代码翻译器-用python实现百度翻译的示例代码

    用python实现百度翻译,分享给大家,具体如下: 首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写自己的一 ...

  8. python汉语分词,python汉语分词的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 目前我常常使用的分词有结巴分词.NLPIR分词等等 最近是在使用结巴分词,稍微做一下推荐,还是蛮好 ...

  9. python的简单编程-python入门脚本的简单示例

    编程之家收集整理的这篇文章主要介绍了python入门脚本的简单示例,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. ...

最新文章

  1. Oracle发布开源的轻量级 Java 微服务框架 Helidon
  2. 5道面试题,拿捏String底层原理
  3. python微信好友分析源代码_Python实现微信好友的数据分析
  4. WPF 触发器Triggers
  5. 迁移学习NLP:BERT、ELMo等直观图解
  6. 铁乐学Python_day12_作业
  7. 关于电商购物车与订单
  8. Java Date Nuances的痛苦提醒
  9. 【转】.net框架读书笔记---CLR内存管理\垃圾收集(三)
  10. matlab求偏微分方程程序,用MATLAB解偏微分方程.pdf
  11. LeetCode-Largest Rectangle in Histogram
  12. 杭电2019多校第八场 Acesrc and Good Numbers——思维打表oeis
  13. 格力空调通讯协议_格力空调485通讯协议格式 485总线上modbus通信协议?
  14. 语音信号处理、语音特征提取
  15. 常用英语前缀和全部英语前缀——138个
  16. python求n的倍数_求n以下所有数字的总和,这些数字是某些数字的倍数
  17. 小程序中点击二维码图片预览、长按转发、保存、识别图中二维码
  18. SQL Developer连接时报错:ORA-12528
  19. 微信文件上传的测试用例
  20. 凸多边形最小面积包围矩形

热门文章

  1. intel i5处理器layout及原理图参考
  2. Java进阶(八)Stream、异常体系
  3. 气压曲线软件 android,GPS气压海拔测量
  4. java 隐藏父类方法,java 子类继承父类成员变量的隐藏、实现方法的重写
  5. win10资源管理器打开一直正在处理文件加载不出来,桌面图标不加载
  6. 网络信息安全领域中常见的几个概念
  7. 学习批处理之安装一键装机必备软件
  8. 暑期集训1期11暑期集训一期12阶段性测验
  9. re学习笔记(37)BUUCTF-re-[GUET-CTF2019]re Z3约束求解器
  10. PS中去掉图片周围的无用白色区域