第一篇CSDN博客 python爬虫豆瓣排名前250的电影
## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影
1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘了,那些做过的笔记(在纸上写的笔记)也掉了,所以就,欸~,二是因为将自己的问题发布到网上,可以帮助大家解决一些问题哈,顺便提高一下自己的csdn排名,嘿嘿。
2.废话不多说,直接开讲,可能跟网上排名比较高的有点差距哈,但简答易懂哈,首先import requests库和from bs4 import BeautifulSoup库
import requests
from bs4 import BeautifulSoup
这里说一下:requests库是用来访问网站的,就是那个http://的啥玩意
BeautifulSoup最主要的功能是从网页(html)抓取数据,然后分析数据
在废话一下,如何安装这些库,进入cmd控制台
pip install requests
pip install beautifulsoup4
如果下载的慢,可以采用清华的镜像(真的是清华做的),
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple beautifulsoup4
这样库就导入成功了。前提准备已完成。
3.接下来,看代码部分,
首先我们要写个headers,headers中包含了我们的访问该网站的信息,user-agent表示我们用的处理器是什么,系统是什么等去模拟一个手动登入的状态(不然会被网站挡住的)Host表示请求的服务器网址
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36','Host': 'movie.douban.com'
}
我们先看main函数:page=10,因为每个页面只能显示25部电影,所以250/25=10,然后for循环遍历访问,url的链接是重点 url = “https://movie.douban.com/top250?start=”+str(25*index)
这里要解释一下,豆瓣第1名到第25的页面是https://movie.douban.com/top250?start=0,第25名到第50名页面是https://movie.douban.com/top250?start=25,所以才是这样,然后我们通过getHTMLText(url)函数来解析html的网站,最后test(html,index)函数输出结果。
def main():page=10for index in range(page):url = "https://movie.douban.com/top250?start="+str(25*index)html = getHTMLText(url)test(html,index)
main()
其次我们看一下getHTMLText函数:
首先调用**requests.get(url,headers,timeout)**函数,该方法会将headers和url拼接,然后发送网页请求。r.raise_for_status()是请求的状态码,r.encoding = r.apparent_encoding是将该网页的编码方式转为更准确的编码方式,之后返回解析后的文本return r.text
def getHTMLText(url):try:r = requests.get(url,headers=headers)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""
最后我们来看test(html,index)函数:
soup = BeautifulSoup(html,“html.parser”)用解析器来对网页解析,得到一碗soup汤。电影名字的标签在a的span class=‘title’ 中,通过find_all返回所有含标签的对象,然后对标签中去找寻span class中的string,也就是名字然后返回即可。顺便把得到的结果写在了F:\text.txt中。
def test(html,page):f1 = open(r'F:\测试.txt', 'a')soup = BeautifulSoup(html,"html.parser")alink = soup.find_all('a')i=page*25for index in range(len(alink)):if alink[index].find('span',{"class":"title"})!=None:print('第'+str(i+1)+'名'+'---'+alink[index].find('span', {"class": "title"}).string.rjust(20))f1.write('第'+str(i+1)+'名'+'---'+alink[index].find('span', {"class": "title"}).string.rjust(20)+"\n")i=i+1
详细代码如下:
import requests
from bs4 import BeautifulSoup
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36','Host': 'movie.douban.com'
}
def getHTMLText(url):try:r = requests.get(url,headers=headers)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def test(html,page):f1 = open(r'F:\测试.txt', 'a')soup = BeautifulSoup(html,"html.parser")alink = soup.find_all('a')i=page*25for index in range(len(alink)):if alink[index].find('span',{"class":"title"})!=None:print('第'+str(i+1)+'名'+'---'+alink[index].find('span', {"class": "title"}).string.rjust(20))f1.write('第'+str(i+1)+'名'+'---'+alink[index].find('span', {"class": "title"}).string.rjust(20)+"\n")i=i+1def main():page=10for index in range(page):url = "https://movie.douban.com/top250?start="+str(25*index)html = getHTMLText(url)test(html,index)
main()
最最后,新人乍到,希望大家多多支持,码字不易,ball ball点个赞~
第一篇CSDN博客 python爬虫豆瓣排名前250的电影相关推荐
- python爬虫豆瓣排名前250的电影
import requests库和from bs4 import BeautifulSoup库 import requests from bs4 import BeautifulSoup reques ...
- 阿呆的第一篇CSDN博客
阿呆的第一篇CSDN博客 我是谁 为何而来? 往哪里去 一个月时间规划自己的经济收入支出 建一个书单 记录数学推导 我是谁 我是阿呆,武汉某高校工科研究生,在做计算机数值模拟计算方向的入门的学习工作. ...
- 我的第一篇CSDN博客文章
我的第一篇CSDN博客文章 今天是2016-08-30,作为一个临近毕业的在校大学生,马上就要开始九月份的找工作了,这两年在学校里面凭借兴趣以及专业方面的点点滴滴,决定了基本就从事IT编程这方面的工作 ...
- 我的第一篇CSDN博客--微信小程序
我的第一篇CSDN博客 产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验 小程序注册 微信小程序是一种全新的连接用户与服务的方式 ...
- python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式
一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...
- 关于笔记本屏幕的一点个人意见——鄙人的第一篇CSDN博客
据说CSDN上面有很多牛人,所以来这里写博我还是斗争了一下的.这是一个比较Pro的博客,而我现在在IT方面基本外行. 关于笔记本屏幕,想信有很多人和我一样发现了一种趋势--越来越多的笔记本采用了反光表 ...
- 作为我的第一篇csdn博客吧
现在大二快结束了,看好多网上大佬们都说写博客是个好习惯,算是总结一下学习过程中的坑吧.本人大学以后很不擅长做笔记,改改毛病吧. 以后试着了解github,听说很流弊. 还有还有,前几天的事情,mgj, ...
- 没什么卵用的第一篇CSDN博客
在这里,写博客只有一个目的. 那就是像记录数学笔记一样写题解. 既然时间长了,可能会遗忘,那么为什么不把它保存起来,日后欣赏呢? 所以我暂时选择了这个地方保存我的题解-- NOIP2017已过.未来在 ...
- javaSE探赜索隐之一<小生的第一篇CSDN博客,欢迎大家指正>
文章目录 java语言的应用 Java语言发展史 Java语言的特点 Java语言体系结构 Java语言的运行机制 Java运行环境 java语言的应用 web程序 安卓app 软件工具 大数据 传感 ...
最新文章
- java 折半插入排序_[Java代码] Java实现直接插入排序和折半插入排序算法示例
- 自定义字体——自带常见图标,以后就省的切图了
- linux 临时设置英文输入,Linux 设置 Rime 默认英文状态
- 用php获取header头信息
- QT 中使用 c++ 的指针
- 小白学JAVA,与你们感同身受,JAVA---day5:关于多态的理解和分析。鲁迅的一句话:总之岁月漫长,然而值得等待。
- 化作春泥更护花的上一句是什么?化作春泥更护花作者是谁
- 项目入口_住宅小区入口就该这么设计,说得好仔细!
- [译]介绍Spark2.4的用于处理复杂数据类型的新内置函数与高阶函数
- html的代码作用域,JavaScript作用域的全面解析(附代码)
- Java——用户激活邮件工具类
- python github 12306 文贤平_GitHub排名第一!免费最强“抢票神器”在手,程序员抢票再不用跪求加速包...
- 「Linux」- 安装网易云音乐(Neteast Cloud Music) @20210330
- 图解通信原理与案例分析-13:无线对讲机案例--频率调制实现语音点对点无线通信
- SGM—代价聚合学习笔记
- 概率逗号分号_概率里面的逗号
- Android WebView 播放视频无法播放问题和视频适应屏幕大小
- 基于vue,解决打开新窗口被浏览器拦截的问题
- Flink 去除重复数据 重复数据处理
- 微信公众号点歌台php,【php】微信公众平台接口开发--点歌
热门文章
- 让生活变成一个游戏 Habitica-超好玩的待办事项App
- [转载] 蒲慕明教授的eMail
- No.16 br标签 和 wbr标签
- 2021 Windows Server 2008 r2 打印服务器安装与配置以及客户端批量安装打印机
- Linux性能优化学习
- 外文文献——IEEE论文免费下载
- 达实智能中标2.1亿元数据中心项目;中芯集成科创板首发过会拟募125亿;福瑞泰克完成近亿美金B轮融资 | 每日大事件...
- 计算机软考证书英文名称全翻译
- 利用zabbix监控3par光模块的发光功率
- informix 外部表