运行环境:Windows7,python2.7.13

需求分析:爬取豆瓣电影网排行的Top250片名。

步骤:

  1.  抓取网站源码。

  2.  利用正则表达式提取片名。

  3.  把电影片名保存到文本中。

  4.  重复以上3个步骤,直至Top250的片名全部保存完毕。

步骤1:抓取网站源码。

  分析网站的url,找出url的规律。

  第一页的url:https://movie.douban.com/top250?start=0&filter=

  第二页的url:https://movie.douban.com/top250?start=25&filter=

  第三页的url:https://movie.douban.com/top250?start=50&filter=

  最后一页的url:https://movie.douban.com/top250?start=225&filter=

  首先利用requests库的APi抓取网站源码:

import requestsresponse = requests.get('https://movie.douban.com/top250?start=0&filter=')
page = response.content

步骤2:利用正则表达式提取片名。

  观察html源码,利用正则表达式检索自己需要的内容。

import repattern = re.compile(r'<img width="100" alt=".*?"')
movie_list = re.findall(pattern, page)

步骤3:把电影片名保存到文本中。

file = open(u'豆瓣电影Top250.txt', 'w')
for i in movie_list:file.write(i)
file.close()

  这里打开豆瓣电影Top250.txt文件发现数据是下面图片这样的:

  这里需要对数据进行过滤。所以步骤3的代码如下:

file = open(u'豆瓣电影Top250.txt', 'w')
for k in movie_list:k = k.replace('<img width="100" alt="', '') #把没用的字符过滤掉k = k.replace('"', '') #把没用的字符过滤掉
    file.write(k)file.write('\n') #加上一个换行符,使一部电影名占一行
file.close()

步骤4:重复以上3个步骤,直至Top250的片名全部保存完毕。

  这里使用一个for循环,一页一页地往后抓取数据,基本上就是把步骤1,2,3的代码合并在一起,加上一个for循环。(红色的为新增或变动后的代码)

# -*- coding: utf-8 -*-import reimport requests

n = 0
file = open('aa.txt', 'w')
for i in range(10): #这里一个只有10页,所以进行10次循环response = requests.get('https://movie.douban.com/top250?start=%s&filter=' % n)page = response.contentpattern = re.compile(r'<img width="100" alt=".*?"')movie_list = re.findall(pattern, page)for k in movie_list:k = k.replace('<img width="100" alt="', '')k = k.replace('"', '')file.write(k)file.write('\n') #一页的电影名爬取完毕n += 25 #在步骤1可以发现url的规律,所以n每次加25
file.close()

总结:上面这段代码已经可以完成任务了,下面是整理,封装成一个类的完整代码:

# -*- coding: utf-8 -*-
import re
import requestsclass MovieTop250Spider:def __init__(self):self.n = 0self.url = 'https://movie.douban.com/top250?start=%s&filter=' % self.ndef getPage(self, url): #用于下载网页html源码response = requests.get(url = url)page = response.contentreturn pagedef spider(self):pattern = re.compile(r'<img width="100" alt=".*?"') #用于检索电影名的匹配模式file = open(u'豆瓣Top250电影.txt', 'w')for i in range(10):page = self.getPage(self.url)movie_list = re.findall(pattern, page)for k in movie_list:k = k.replace('<img width="100" alt="', '')k = k.replace('"', '')file.write(k)file.write('\n')self.n += 25self.url =  'https://movie.douban.com/top250?start=%s&filter=' % self.nfile.close()movie = MovieTop250Spider()
movie.spider()

  结果如图:

转载于:https://www.cnblogs.com/Alfred-ou/p/9010454.html

爬虫脚本(抓取豆瓣电影Top250)相关推荐

  1. python2.7抓取豆瓣电影top250

    利用python2.7抓取豆瓣电影top250 1.任务说明 抓取top100电影名称 依次打印输出 2.网页解析 要进行网络爬虫,利用工具(如浏览器)查看网页HTML文件的相关内容是很有必要,我使用 ...

  2. python爬取豆瓣电影top250_用Python爬虫实现爬取豆瓣电影Top250

    用Python爬虫实现爬取豆瓣电影Top250 #爬取 豆瓣电影Top250 #250个电影 ,分为10个页显示,1页有25个电影 import urllib.request from bs4 imp ...

  3. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    一起学爬虫--通过爬取豆瓣电影top250学习requests库的使用 学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python req ...

  4. python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel

    douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...

  5. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  6. Python3 抓取豆瓣电影Top250

    利用 requests 抓取豆瓣电影 Top 250: import re import requestsdef main(url):global numheaders = {"User-A ...

  7. 爬虫练习-爬取豆瓣电影TOP250的数据

    前言: 爬取豆瓣电影TOP250的数据,并将爬取的数据存储于Mysql数据库中 本文为整理代码,梳理思路,验证代码有效性--2020.1.4 环境: Python3(Anaconda3) PyChar ...

  8. python爬虫实例-运用requests抓取豆瓣电影TOP250(详解)

    目录 开发工具 目标 网页分析 正则匹配分析 代码实例 总结 开发工具 python版本: python-3.8.1-amd64 python开发工具: JetBrains PyCharm 2018. ...

  9. Python爬虫实例-爬取豆瓣电影Top250

    这是本人Python爬虫实例的第二个实例,不过想来好像没有很大的难度所以适合当做新手入门的第一个爬虫.放在这里供大家参考. 本次实例爬取的网站为豆瓣电影Top250,使用到的第三方库有urllib,B ...

最新文章

  1. 关于创建zeromq消息队列,设置和更改IP地址,远程可以访问,不只是本地链接。python代码。
  2. mstem函数怎么定义_PYTHON--函数定义
  3. php mysql 测试页_mysql+php分页类(已测)
  4. 数据结构与算法——递归、回溯与分治
  5. (王道408考研数据结构)第五章树-第三节2:二叉树构造和重建
  6. 职务作品的著作权归属情况分析
  7. BAT工程师自研存储引擎,火爆Github!!大家速度顶起来
  8. Tomcat 中 tomcat9.exe 和 tomcat9w.exe 的使用
  9. js清空本地存储_前端存储除了 localStorage 还有啥
  10. Android使用App Architecture打造最佳体验和高质量应用《一》
  11. 在Maxthon中使用Google网站加速器(转)
  12. vim之快速查找功能
  13. 英伟达 TX2 蓝牙自动连接蓝牙 设备
  14. Resharper使用
  15. 盘点2009十佳新商业模式
  16. C语言每日一练——第90天:青蛙跳台阶(升级版)
  17. WORD精灵:将Word文档中的标点符号统一为全角或者半角
  18. Protobuf与JSON互相转换
  19. #单片机# ------ stc89c52引脚说明
  20. 计算机学校教务主任岗位职责,学校教务主任竞聘演讲稿

热门文章

  1. 刚刚 iOS17 发布了!新功能总结
  2. 关于const的用法
  3. Machine Learning for hackers读书笔记(八)PCA:构建股票市场指数
  4. android java.lang.illegalstateexception,Android异常 java.lang.IllegalStateException解决方法
  5. 一篇就够 2023网络安全技术自学路线图及职业选择方向
  6. 谷歌第四代TPU性能实测来了!每秒10万万亿次运算,今年将向谷歌云用户提供服务...
  7. java 身份证地址提取籍贯_java从地址串中解析提取省市区-完美匹配中国所有地址|自动解析地址...
  8. Springboot毕设项目大学生心理辅导系统njqlvjava+VUE+Mybatis+Maven+Mysql+sprnig)
  9. Spring高级技术梳理
  10. 图片点击放大 松开缩小