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的电影相关推荐

  1. 第一篇CSDN博客 python爬虫豆瓣排名前250的电影

    ## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影 1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘 ...

  2. python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式

    一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...

  3. Python第一战:爬取豆瓣排名前250的电影

    一.需求分析   爬取豆瓣电影Top250的基本信息,包括电影的名称.豆瓣评分.评价数.电影概况.电影链接等.(https://movie.douban.com/top250) 二.爬虫的定义   网 ...

  4. python爬取豆瓣排名前250部电影封面

    话不多说,先给出网页地址豆瓣电影 Top 250,进入后我们按F12打开开发者工具查看网页信息,然后随便右键点击一张电影封面查看元素如图: 容易看出我们所需要的封面地址在img这个标签下的src属性当 ...

  5. Requests:爬取豆瓣排名前250的电影名称

    import requests from bs4 import BeautifulSoup import pandas as pd # 读取豆瓣TOP250的电影名 def get_movies(): ...

  6. 利用Scrapy爬取豆瓣排名前250部电影封面

    一.爬虫代码 项目目录结构: item.py文件 # -*- coding: utf-8 -*- import scrapyclass DoubanmovieItem(scrapy.Item):# t ...

  7. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  8. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)

    今天我们来爬取一下豆瓣网上排名前250的电影. 需求:爬取豆瓣网上排名前250的电影,然后将结果保存至一个记事本里. 开发环境: python3.9 pycharm2021专业版 我们先观察网页,看看 ...

  9. Python:实现获取 imdb 前 250 部电影算法(附完整源码)

    Python:实现获取 imdb 前 250 部电影算法 from __future__ import annotationsimport csvimport requests from bs4 im ...

最新文章

  1. 化解谷歌AI霸权的另一种思路?开发平台的生态围剿
  2. uni-app 使用vue的语法+小程序的标签和API。
  3. 面试编程岗,期望40K,为什么老板给我翻倍?
  4. 用SegNet进行室内布局语义分割
  5. mysql执行语句返回主键_mysql语句insert后返回主键
  6. windows 远程连接debian_免受版权困扰的远程控制软件,优秀!
  7. linux 端口转发 udp,Linux Socat TCP/UDP端口转发及使用
  8. 机器学习根据文字生成图片教程(附python代码)
  9. MySQL主主从复制+TomCat高可用实践案例
  10. Android三方依赖冲突及Gradle的exclude使用
  11. Flutter项目插件整理
  12. xshell6设置选中复制 右键粘贴复制内容
  13. 2021年安全员-A证最新解析及安全员-A证试题及解析
  14. 【2017 BSUIR Semifinal G】Digital characteristic 题解
  15. Linux磁盘I/O(二):使用vm.dirty_ratio和vm.dirty_background_ratio优化磁盘性能
  16. moo0_使用Moo0系统监控器轻松监控计算机
  17. Linux的虚拟内存
  18. CSS水平垂直居中常见方法总结(转)
  19. 用户界面分析与设计(SSD4) 实验一
  20. echarts初次渲染不出来

热门文章

  1. SPSS折线图【012-2期】
  2. 集丰照明|无主灯智能照明设计,从构想到实现的“八步走”
  3. 搜狗输入法如何使用翻译功能--win10专业版
  4. [渝粤教育] 江西师范大学 大学生身体活动与健康 参考 资料
  5. IP地址划分子网中 【计算子网掩码、可用地址数、每个划分的子网ip】的方法
  6. 苹果公司:成功的先驱
  7. 争抢高端宝座,两轮电动车的科技战鹿死谁手?
  8. android 类似锤子rom launcher,除了情怀还有啥亮点?锤子桌面App体验
  9. 论书 | 《Python基础教程(第二版)》怎么样?有用吗?
  10. Socket编程,自己电脑做服务端和客户端