爬虫脚本(抓取豆瓣电影Top250)
运行环境: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)相关推荐
- python2.7抓取豆瓣电影top250
利用python2.7抓取豆瓣电影top250 1.任务说明 抓取top100电影名称 依次打印输出 2.网页解析 要进行网络爬虫,利用工具(如浏览器)查看网页HTML文件的相关内容是很有必要,我使用 ...
- python爬取豆瓣电影top250_用Python爬虫实现爬取豆瓣电影Top250
用Python爬虫实现爬取豆瓣电影Top250 #爬取 豆瓣电影Top250 #250个电影 ,分为10个页显示,1页有25个电影 import urllib.request from bs4 imp ...
- 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用
一起学爬虫--通过爬取豆瓣电影top250学习requests库的使用 学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python req ...
- python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel
douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...
- python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250
0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...
- Python3 抓取豆瓣电影Top250
利用 requests 抓取豆瓣电影 Top 250: import re import requestsdef main(url):global numheaders = {"User-A ...
- 爬虫练习-爬取豆瓣电影TOP250的数据
前言: 爬取豆瓣电影TOP250的数据,并将爬取的数据存储于Mysql数据库中 本文为整理代码,梳理思路,验证代码有效性--2020.1.4 环境: Python3(Anaconda3) PyChar ...
- python爬虫实例-运用requests抓取豆瓣电影TOP250(详解)
目录 开发工具 目标 网页分析 正则匹配分析 代码实例 总结 开发工具 python版本: python-3.8.1-amd64 python开发工具: JetBrains PyCharm 2018. ...
- Python爬虫实例-爬取豆瓣电影Top250
这是本人Python爬虫实例的第二个实例,不过想来好像没有很大的难度所以适合当做新手入门的第一个爬虫.放在这里供大家参考. 本次实例爬取的网站为豆瓣电影Top250,使用到的第三方库有urllib,B ...
最新文章
- 关于创建zeromq消息队列,设置和更改IP地址,远程可以访问,不只是本地链接。python代码。
- mstem函数怎么定义_PYTHON--函数定义
- php mysql 测试页_mysql+php分页类(已测)
- 数据结构与算法——递归、回溯与分治
- (王道408考研数据结构)第五章树-第三节2:二叉树构造和重建
- 职务作品的著作权归属情况分析
- BAT工程师自研存储引擎,火爆Github!!大家速度顶起来
- Tomcat 中 tomcat9.exe 和 tomcat9w.exe 的使用
- js清空本地存储_前端存储除了 localStorage 还有啥
- Android使用App Architecture打造最佳体验和高质量应用《一》
- 在Maxthon中使用Google网站加速器(转)
- vim之快速查找功能
- 英伟达 TX2 蓝牙自动连接蓝牙 设备
- Resharper使用
- 盘点2009十佳新商业模式
- C语言每日一练——第90天:青蛙跳台阶(升级版)
- WORD精灵:将Word文档中的标点符号统一为全角或者半角
- Protobuf与JSON互相转换
- #单片机# ------ stc89c52引脚说明
- 计算机学校教务主任岗位职责,学校教务主任竞聘演讲稿
热门文章
- 刚刚 iOS17 发布了!新功能总结
- 关于const的用法
- Machine Learning for hackers读书笔记(八)PCA:构建股票市场指数
- android java.lang.illegalstateexception,Android异常 java.lang.IllegalStateException解决方法
- 一篇就够 2023网络安全技术自学路线图及职业选择方向
- 谷歌第四代TPU性能实测来了!每秒10万万亿次运算,今年将向谷歌云用户提供服务...
- java 身份证地址提取籍贯_java从地址串中解析提取省市区-完美匹配中国所有地址|自动解析地址...
- Springboot毕设项目大学生心理辅导系统njqlvjava+VUE+Mybatis+Maven+Mysql+sprnig)
- Spring高级技术梳理
- 图片点击放大 松开缩小