python爬虫豆瓣排名前250的电影
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:\测试.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()
python爬虫豆瓣排名前250的电影相关推荐
- 第一篇CSDN博客 python爬虫豆瓣排名前250的电影
## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影 1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘 ...
- python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式
一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...
- Python第一战:爬取豆瓣排名前250的电影
一.需求分析 爬取豆瓣电影Top250的基本信息,包括电影的名称.豆瓣评分.评价数.电影概况.电影链接等.(https://movie.douban.com/top250) 二.爬虫的定义 网 ...
- python爬取豆瓣排名前250部电影封面
话不多说,先给出网页地址豆瓣电影 Top 250,进入后我们按F12打开开发者工具查看网页信息,然后随便右键点击一张电影封面查看元素如图: 容易看出我们所需要的封面地址在img这个标签下的src属性当 ...
- Requests:爬取豆瓣排名前250的电影名称
import requests from bs4 import BeautifulSoup import pandas as pd # 读取豆瓣TOP250的电影名 def get_movies(): ...
- 利用Scrapy爬取豆瓣排名前250部电影封面
一.爬虫代码 项目目录结构: item.py文件 # -*- coding: utf-8 -*- import scrapyclass DoubanmovieItem(scrapy.Item):# t ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)
今天我们来爬取一下豆瓣网上排名前250的电影. 需求:爬取豆瓣网上排名前250的电影,然后将结果保存至一个记事本里. 开发环境: python3.9 pycharm2021专业版 我们先观察网页,看看 ...
- Python:实现获取 imdb 前 250 部电影算法(附完整源码)
Python:实现获取 imdb 前 250 部电影算法 from __future__ import annotationsimport csvimport requests from bs4 im ...
最新文章
- 化解谷歌AI霸权的另一种思路?开发平台的生态围剿
- uni-app 使用vue的语法+小程序的标签和API。
- 面试编程岗,期望40K,为什么老板给我翻倍?
- 用SegNet进行室内布局语义分割
- mysql执行语句返回主键_mysql语句insert后返回主键
- windows 远程连接debian_免受版权困扰的远程控制软件,优秀!
- linux 端口转发 udp,Linux Socat TCP/UDP端口转发及使用
- 机器学习根据文字生成图片教程(附python代码)
- MySQL主主从复制+TomCat高可用实践案例
- Android三方依赖冲突及Gradle的exclude使用
- Flutter项目插件整理
- xshell6设置选中复制 右键粘贴复制内容
- 2021年安全员-A证最新解析及安全员-A证试题及解析
- 【2017 BSUIR Semifinal G】Digital characteristic 题解
- Linux磁盘I/O(二):使用vm.dirty_ratio和vm.dirty_background_ratio优化磁盘性能
- moo0_使用Moo0系统监控器轻松监控计算机
- Linux的虚拟内存
- CSS水平垂直居中常见方法总结(转)
- 用户界面分析与设计(SSD4) 实验一
- echarts初次渲染不出来
热门文章
- SPSS折线图【012-2期】
- 集丰照明|无主灯智能照明设计,从构想到实现的“八步走”
- 搜狗输入法如何使用翻译功能--win10专业版
- [渝粤教育] 江西师范大学 大学生身体活动与健康 参考 资料
- IP地址划分子网中 【计算子网掩码、可用地址数、每个划分的子网ip】的方法
- 苹果公司:成功的先驱
- 争抢高端宝座,两轮电动车的科技战鹿死谁手?
- android 类似锤子rom launcher,除了情怀还有啥亮点?锤子桌面App体验
- 论书 | 《Python基础教程(第二版)》怎么样?有用吗?
- Socket编程,自己电脑做服务端和客户端