爬虫小例子分享(豆瓣评分前250名)

首先,我们先要进行一些准备工作。
1.安装requests第三方库 和 BeautifulSoup第三方库
采用pip指令安装requests库
指令为:pip install requests
如果出现了pip不是内部指令的话,建议卸载一下IDLE,重新安装后,配置好环境变量。
采用pip指令安装beautifulsoup4
指令为:pip install beautifulsoup4
2.requests库是一个处理HTTP请求的第三方,最大的优点是程序编写过程中更接近正常的URL访问过程。

requests第三方库最常用的方法是get()方法,用来获取网页。get()的参数是url,链接必须采用HTTP或HTTPS的方式进行访问。
3.beautifulsoup4库是一个解析和处理HTML和XML的第三方库。
在一些网页中需要用正则表达式筛选标签内容,建议引入re库,re库用来引入正则表达式。
4.在爬虫的时候,有些网站是不会让我们爬虫的,就比如说这个豆瓣评分的网站,我们需要伪装一下,用header请求头来访问网站。

5.具体的反爬可以参考:
反爬虫,请求头设置
6.
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = code
return r.text
通过requests库,得到要访问的网站,将请求头伪装成上面已经写好的请求头,防止网页反爬虫。
raise_for_status():这个方法是专门与异常打交道的方法,该方法有这样一个有趣的功能,它能够判断返回的Response类型状态是不是200。如果是200,他将表示返回的内容是正确的,如果不是200,他就会产生一个HttpError的异常。
具体的Response方法请参考:
Response使用方法

7.
豆瓣评分一共分为10页,每页25部电影,电影网页的html网页的格式为:
https://movie.douban.com/top250?start=0&filter=
我们可以剖析一下这个网站的意思,问号后面,start=num 的意思就是从第几部电影开始,这里面的排序按照数组下标,所以第一部电影开始的话,网站是start=0。
8.
在网页右键点击查看源文件,我们可以看到我们的电影信息都是放在了ol标签中,真正的信息都是放在了li标签中。
for i in range(10):
homepage = ‘https://movie.douban.com/top250’ + min(1, i) * f’?start={i*25}&filter=’
soup = BeautifulSoup(get_html_text(homepage), ‘html.parser’)
movielist = soup(‘ol’)[0]

我们通过第一次遍历循环,遍历10张页面的所有

  1. 标签,找到所有的电影信息。
    for movie in movielist(‘li’):
    title = movie(‘span’, class_=‘title’)[0].string
    然后找出所有在li标签中的span标签中的电影信息
    span class="title"肖申克的救赎span只找span标签中的title属性,这样,我们就获取了250个电影信息的title

9.源码:
import requests
from bs4 import BeautifulSoup

def get_html_text(url, code=‘utf-8’):
“”“get html source code”""
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’}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = code
return r.text
except requests.exceptions.RequestException:
return ‘’

with open(‘douban.txt’,‘w’, encoding=‘utf-8’) as f:
for i in range(10):
homepage = ‘https://movie.douban.com/top250’ + min(1, i) * f’?start={i*25}&filter=’
soup = BeautifulSoup(get_html_text(homepage), ‘html.parser’)
movielist = soup(‘ol’)[0]
for movie in movielist(‘li’):
title = movie(‘span’, class_=‘title’)[0].string
try:
rating = movie(‘span’, class_=‘rating_num’)[0].string
except IndexError:
rating = ‘无评分’
try:
comments = movie(‘span’, class_=‘inq’)[0].string
except IndexError:
comments = ‘无评论’
f.write(f’{title:10}\t{rating:3}\t{comments}\n’)

10.

Python 爬虫小分享(豆瓣评分)相关推荐

  1. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下 抓取豆瓣电影TOP100 一.分析豆瓣top ...

  2. python爬虫拉取豆瓣Top250数据

    python爬虫拉取豆瓣Top250数据 利用request和正则表达式抓取豆瓣电影Top250的相关内容,提取出电影的名称.时间.评分和图片等信息,提取的站点url为https://movie.do ...

  3. Python爬虫 爬取豆瓣电影TOP250

    Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...

  4. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  5. 9139 位艺人在 Python 面前不值一提 # Python 爬虫小课 5-9

    本篇博客的最终目标是爬取世界上 9139 位艺人的身高.体重.生日.血型,当然有些数据目标网站没有提供,不在做过多的扩展. 爬虫小课系列文章导读链接 第一篇:Python 爬虫小课 1-9 宝妈程序媛 ...

  6. 某徒步旅游网站python爬虫小练习

    yxk周边游网站python爬虫小练习(跨页面) 代码很简单,关键一个是 encoding="utf_8_sig" , 否则乱码,注意writerow()处理list import ...

  7. Python爬虫爬取豆瓣电影评论内容,评论时间和评论人

    Python爬虫爬取豆瓣电影评论内容,评论时间和评论人 我们可以看到影评比较长,需要展开才能完整显示.但是在网页源码中是没有显示完整影评的.所以我们考虑到这部分应该是异步加载的方式显示.所以打开网页的 ...

  8. 虎嗅 24 小时点赞器,一个案例附带一个爬虫技巧,Python 爬虫小课 7-9

    很多平台都有点赞功能,今天提供的这个思路可用于很多平台,希望可以掌握该技巧,实现你自己的点赞器.本案例目标为虎嗅 24 小时频道点赞. 爬虫小课系列文章导读链接 第一篇:Python 爬虫小课 1-9 ...

  9. python爬虫爬取豆瓣读书Top250

    python爬虫爬取豆瓣读书Top250 话不多说,直接上代码! from urllib.request import urlopen, Request from bs4 import Beautif ...

最新文章

  1. 替代还是扩展:云的下一站真是雾计算?
  2. 电脑常见问题_电脑知识,每日一课,计算机常用维修小技巧
  3. Linux-安装 Ubuntu Server 16.04 X64(图文教程详细版)
  4. 易创课堂上海站干货回顾
  5. Luogu P3455 [POI2007]ZAP-Queries
  6. 4pam调制与解调(matlab实现)
  7. [SAP ABAP开发技术总结]权限对象检查
  8. python中的深拷贝_Python中的深拷贝和浅拷贝
  9. iOS:图片上传时两种图片压缩方式的比较
  10. CentOS 7 yum 安装php5.6
  11. vue如何让一句代码只执行一次_lt;Vue 源码笔记系列4gt;异步更新队列与$nextTick...
  12. 知识图谱-远程监督关系提取
  13. Mybatis之执行自定义SQL举例
  14. 2017 ACM/ICPC(北京)总结
  15. 蓝牙音频传输格式:ACC,SBC,APTX和LDAC
  16. 三端线性稳压器工作原理与典型应用电路分析——78XX与LM317
  17. 关于java中的httpsession_JavaWeb——HttpSession
  18. python随机生成一个整数n、求s=1+2+3_随机数字生成与数据杜撰—Python、Stata、R和Excel同步实现(附代码)...
  19. 3.vue3.2的父传子defineProps,子传父emits以及ref
  20. 原码、反码、补码概念及转换

热门文章

  1. Android百度地图SDK 导航初始化和地图初始化引起的冲突
  2. 【EEG】关于SEED-VIG数据集介绍
  3. 【JavaScript】黑点捉红点并躲绿点游戏
  4. 巨人推进“网游社区化” 或参股51.COM
  5. 怎样设置计算机访问数量,win10热点设置连接数量设置想相关方法
  6. android手机微博个性名称,玩个性 Android手机发布“手写体微博”
  7. html中鼠标放上去变颜色,在HTML里怎样让鼠标移上去变颜色
  8. 正则表达式数字,字母,汉字组合 必须包含
  9. ssm毕设项目校园二手交易平台nip58(java+VUE+Mybatis+Maven+Mysql+sprnig)
  10. vue中引入TinyMCE实现富文本编辑器