python爬虫入门篇

接下来的一些时间会分享一些爬虫相关的代码和知识

有人会问爬虫怎么舔女神?

我只能说浅了 看完伟大的Technical Licking Dog 的文章你将会对舔狗的认知得到一个升华!

目录

接下来的一些时间会分享一些爬虫相关的代码和知识

正文

爬虫的运行原理:

实战一下豆瓣TOP250

用正则清理一下提取出我们需要的数据

完整代码


正文

import requests
name = input("输入你要查询的名字:")
url = f'https://cn.bing.com/search?q={name}'
dic = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.12151 SLBChan/33"
}#找user-agent f12
resp = requests.get(url,headers=dic)
print(resp.text)

上面这串代码就是爬虫 是不是觉得很简单 可以去打一下的确很简单 但是我还是想说浅了

有没有想过它的运行方式?

爬虫的运行原理:

 对服务器发起请求:

其中会携带你的数据 服务器就会对这些数据(headers、cookie、referer等等),类似于你过安检检查你是否安全不是非法的

-

返回响应:

其中可能携带数据或者网页信息等等

-

其实以上说到的基本原理别看我只画了一个请求和一个返回,其实是有可能是请求多次,返回多组数据的

-

实战一下豆瓣TOP250

看到一个网站

不要先打开开发者工具!!!

不要先打开开发者工具!!!

不要先打开开发者工具!!!

(想知道为什么请关注我的后续文章会有细致的讲解哈哈)

-

先别急看看源代码嘛(ctrl+u)

源代码 ≠ 开发者工具(element或元素)

-

当我们看到这串源代码的时候 就会发现我们需要的信息都出现在了源代码里面 我们只要请求然后筛选出我们需要的数据就行了(包浆 否则说我违规)

 -

 然后你就会写这么一串代码去发送请求 但是你会发现居然报错了 这就是反爬机制

 -

 所谓的反爬机制我们也无法就是说精确的找到一种办法去解决 只能就是试

这个时候就打开你的开发者工具F12 或 Fn+F12 ---> 找到网络(network)

 如果发现里面是空的没有文件 ctrl + R 刷新一下

-

 随便点开一个文件找到里面的user-agent 复制粘贴

-

 

ok 这样我们就获取到了源代码

-

用正则清理一下提取出我们需要的数据

(除了re(正则)、xpath,美味的汤(忘了怎么拼了好像是beautifulsoup))

但是正则可以说是最快的 

re.S :让正则去匹配的时候能够换行

obj.finditer :匹配出来的数据是一个迭代器 因为后面要写入exel里面比较方便就这么用了,当然也可以直接用findall 试试吧 不会可以私信问我

obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)'r'</span>.*?<p class="">.*?<br>(?P<year>.*?)&nbsp.*?<span 'r'class="rating_num" property="v:average">(?P<score>.*?)</span>.*?'r'<span>(?P<said>.*?)</span>',re.S)datas = obj.finditer(resp)for data in datas:result = []dic = data.groupdict()dic['year'] = dic['year'].strip()for value in dic.values():result.append(value)print(result)

 正则简单讲解:

如果要真的去学习正则表达式可以去网上找一下 但是作者不喜欢记太多东西 所以偷坤取巧发现了.*? 这个好东西

如何理解.*?:

.* 在正则里面表示任何东西都能匹配上(贪婪匹配)

-

.?在正则里表示谁都看不上(惰性匹配)

-

他两一结合就变成了 .*?

-

实现翻页

当我们爬出源代码的时候会发现我们top250只有top25

ok 我们滑倒最下面点击第二页 会看到网址显示

 第三页

 第四页

 

我们发现了一个规律就是每次翻页start= 后面的数字会增加25!!!!crazy!!!

那我们是不是有可能就是去访问这些网址然后筛选出我们需要的数据就ok了 我们只要请求十次就能实现我们的目标了

那我们只要循环十次然后每次加25就行了

 

完整代码

最后把数据存储到表内 并简单做个可视化

import re
import requests
import openpyxl
import matplotlib.pyplot as plt
wb = openpyxl.Workbook()
sheet = wb.create_sheet('电影数据')
year = []
val = []
for i in range(10):url = f"https://movie.douban.com/top250?start={i*25}"header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62','Cookie':'ll="118286"; bid=h6vgP6FRIHw; _ga=GA1.2.38607179.1655792431; Hm_lvt_16a14f3002af32bf3a75dfe352478639=1655891953; viewed="1007305"; gr_user_id=34f6c8b0-7330-46aa-8df1-e07526f78957; __gads=ID=297653f28df76163-226ffe4538d50098:T=1658134586:RT=1658134586:S=ALNI_MZZVJWb95pMCooIcRP02XMA3vzraQ; ap_v=0,6.0; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1658423336%2C%22https%3A%2F%2Fcn.bing.com%2F%22%5D; _pk_ses.100001.4cf6=*; __utma=30149280.38607179.1655792431.1658140565.1658423338.8; __utmb=30149280.0.10.1658423338; __utmc=30149280; __utmz=30149280.1658423338.8.3.utmcsr=cn.bing.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __utma=223695111.1864728931.1655792440.1656089200.1658423338.4; __utmb=223695111.0.10.1658423338; __utmc=223695111; __utmz=223695111.1658423338.4.3.utmcsr=cn.bing.com|utmccn=(referral)|utmcmd=referral|utmcct=/; _vwo_uuid_v2=D99D5C5BC1DF7395DA51F575DECBE1A29|7be6d65793d9cbb7a499ebc09a24b531; _pk_id.100001.4cf6=3a78da035377a38e.1655792440.4.1658423373.1656089237.; __gpi=UID=000007d49fb12f4b:T=1658134586:RT=1658423373:S=ALNI_MYN_rWPIi9BpB9FzZHFuFaCu3mKVQ','Host':'movie.douban.com'}resp = requests.get(url,headers=header).textobj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)'r'</span>.*?<p class="">.*?<br>(?P<year>.*?)&nbsp.*?<span 'r'class="rating_num" property="v:average">(?P<score>.*?)</span>.*?'r'<span>(?P<said>.*?)</span>',re.S)datas = obj.finditer(resp)for data in datas:result = []dic = data.groupdict()dic['year'] = dic['year'].strip()for value in dic.values():result.append(value)print(result)sheet.append(result)#写入Exel表year.append(result[1])#提取信息val.append(result[2])#为了可视化
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False##中文显示问题
plt.bar(year,val)#柱状图
plt.show()#显示出可视化结果
wb.save('hhhhhhhhhhhhhhhh好找.xlsx',)#保存

因为篇幅有限有些东西无法尽善尽美 如果有什么不懂的地方可以评论区或私信问我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18844.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序人生 - 为什么表情包越转发越模糊,还会变绿?

当代人聊天离不开什么&#xff1f; 表情包&#xff01;&#xff01;&#xff01; 没有表情包&#xff0c;怎么表达我的感情&#xff1f;&#xff08;当然&#xff0c;我对你基本没什么感情~只是想秀一下沙雕表情包&#xff01;&#xff09;在过去的日子里&#xff0c;江湖上流传…

⚡【C语言趣味教程】(1) 深入浅出 HelloWorld | 通过 HelloWorld 展开教学 | 头文件详解 | main 函数详解

&#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; ​—— 热门专栏《维生素C语言》的重制版 —— &#x1f4ad; 写在前面&#xff1a;这是一套 C 语言趣味教学专栏&#xff0c;目前正在火热连载中&#xff0c;欢迎猛戳订阅&#x…

正确保护Macbook

MacBook该如何正确保护呢&#xff1f;不是各种键盘膜、保护壳通通用上就是最好的&#xff0c;那么该如何正确做呢&#xff1f;下面是macw小编带来的详细指导&#xff0c;快来学习&#xff01; 在接下来的文章中&#xff0c;笔者将展示哪些配件是可取的&#xff0c;哪些配件是坚…

从做产品的角度分析吕布为什么非死不可?

这是一篇小品文&#xff0c;作者是“产品家实战营3期”学员…… 马中赤兔&#xff0c;人中吕布&#xff0c;本意虽褒&#xff0c;但个人觉得将人与牲口类比&#xff0c;其段位貌似也没高到哪里&#xff0c;&#xff1a;&#xff09; 不过说起三国里的武将武力排名&#xff0c;吕…

中国撸串指北:13万家烧烤店的吃货最爱

戳蓝字“CSDN云计算”关注我们哦&#xff01; 数据分析&#xff1a;还是更爱火锅的朱小五 内容撰写&#xff1a;最爱干豆腐卷的王小九 来源|凹凸数读 对美食最大的肯定无疑就是那操着不同口音说出的“好吃&#xff01;”二字。 ——《人生一串》豆瓣短评 以美食慰藉夜归人&…

Github上这几个沙雕项目,够我玩三天!

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 开源最前线&#xff08;ID&#xff1a;OpenSourceTop&#xff09; 猿妹综合整理 今天&#xff0c;猿妹再…

几个有趣的Github项目,够你玩一阵了...

点击上方“后端技术精选”&#xff0c;选择“置顶公众号” 技术文章第一时间送达&#xff01; 来源&#xff1a;开源最前线 今天&#xff0c;给大家整理一份有意思的沙雕项目&#xff0c;顺带分享了我的试用成果&#xff0c;说实话&#xff0c;这些项目够你玩三天了。 亲戚关系…

包浆网图分分钟变高清,伪影去除、细节恢复更胜前辈AI,下载可玩|腾讯ARC实验室出品...

丰色 发自 凹非寺量子位 报道 | 公众号 QbitAI 下面来欣赏一些高糊图片“整个世界都清晰了”的魔法时刻&#xff1a; 无论是动漫还是真实图像&#xff0c;是不是都清晰还原了&#xff1f; 以上就是由腾讯ARC实验室最新发表的图像超分辨率模型完成的。 与前人工作相比&#xff0…

爬虫入门实践 | 利用python爬取彩票中奖信息

系统环境&#xff1a;mac python版本&#xff1a;3.6.2(anaconda) 库&#xff1a;requests、BeautifulSoup 爬取一些简单的静态网站&#xff0c;一般采取的策略为&#xff1a;选中目标&#xff0c;也就是需要爬取的网站url&#xff1b;观察结构&#xff0c;查看网页结构&…

全网超详细的下载与安装VMware虚拟机以及为什么要安装VMware虚拟机

文章目录 1. 文章引言2. 下载VMware3. 安装VMware 1. 文章引言 我们使用最多的系统是windows系统&#xff0c;因为&#xff0c;国内电脑厂商的操作系统(os)基本是windows系统&#xff0c;比如华为、联想、华硕等电脑。 但线上的服务器大多是Linux系统&#xff0c;而我们经常使…

图灵奖得主LeCun:ChatGPT局限巨大,自回归模型寿命不超5年

作者 | 新智元 编辑 | 新智元 点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 ADAS巨卷干货&#xff0c;即可获取 【导读】图灵奖得主Yann LeCun畅谈AI&#xff1a;未来是开源。 今年上半年&#xff0c;可谓是AI届最波澜壮阔的半年。 在急速发展的各类GPT甚至AGI的雏形背…

LeCun畅谈:ChatGPT局限巨大,自回归模型寿命不超5年

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【计算机视觉】微信技术交流群 转载自&#xff1a;新智元 | 编辑&#xff1a;拉燕 【导读】图灵奖得主Yann LeCun畅谈AI&#xff1a;未来是开源。 今年上半年&#xff0c;可谓…

ChatGPT正在改变一切但仍然有其局限性

人工智能聊天机器人已经被证明非常有能力完成技术任务&#xff0c;例如编写和编码。但它还不能做所有的事情。 自11月下旬发布以来&#xff0c;ChatGPT已经席卷全球。这款聊天机器人的高级人工智能能力允许它完全独立完成任务&#xff0c;如撰写论文、电子邮件和诗歌、编写和调…

从集异壁理解ChatGPT的成功与局限

终其一生&#xff0c;人类都在探寻认知这个世界的方式。 音乐、绘画和人工智能是三个看似无关的领域&#xff0c;但是它们都是人类这次伟大尝试的绚烂明珠。在这三个领域&#xff0c;追根溯源&#xff0c;底层的结构&#xff0c;都简洁且美丽。 图片由Midjourney生成&#xff0…

GPT虚拟直播Demo系列(二)|无人直播间实现虚拟人回复粉丝

摘要 虚拟人和数字人是人工智能技术在现实生活中的具体应用&#xff0c;它们可以为人们的生活和工作带来便利和创新。在直播间场景里&#xff0c;虚拟人和数字人可用于直播主播、智能客服、营销推广等。接入GPT的虚拟人像是加了超强buff&#xff0c;具备更强大的自然语言处理能…

今晚 12:30 RLHF: From Zero to ChatGPT 直播活动

本次演讲&#xff0c;我们将介绍一种称之为从人类反馈中强化学习 (RLHF, Reinforcement Learning from Human Feedback) 的基础知识&#xff0c;以及如何使用 RLHF 驱动实现 ChatGPT 这样的工具。我们将为大家介绍相关联的机器学习模型&#xff0c;涵盖自然语言处理 (NLP) 和强…

2-24财财的财经早报!

早评0224&#xff1a;震荡依旧 【市场判断】 外围方面&#xff0c;美股三大指数收涨&#xff0c;道指涨0.33%&#xff0c;纳指涨0.72%&#xff0c;标普涨0.53%。消息面上,美联储官员在会议纪要中重申了其强硬的立场——与会者都同意在通胀得到实质控制之前继续加息步伐。芝商所…

一个90后关于ZG足球的思考【卡塔尔世界杯】

前言 一个月的时间过得还是非常快的&#xff0c;卡塔尔世界杯马上也要迎来半决赛和决赛。自己一直想动手写写自己关于足球的思考&#xff0c;特别是ZG足球&#xff0c;说得再准确一点&#xff0c;就是ZG男足。 正文 第一次认识足球运动 作为一名90后&#xff0c;自己开始认…

数据可视化之中国足球队在国际足联及亚洲的历史排名看这儿

最近最热的体育盛事莫过于世界杯了&#xff0c;四年一届的足球盛事&#xff0c;正在卡塔尔激战正酣。这时候可能会有球迷疑问&#xff1a;怎么没看到中国队呢&#xff1f;也有网友调侃说中国队被分到工程队去了。 泱泱大国&#xff0c;难道中国十几亿人口&#xff0c;一个足球队…