这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下
抓取豆瓣电影TOP100
一、分析豆瓣top页面,构建程序结构
1.首先打开网页http://movie.douban.com/top250?start,也就是top页面
然后试着点击到top100的页面,注意带top100的链接依次为

http://movie.douban.com/top250?start=0
http://movie.douban.com/top250?start=25
http://movie.douban.com/top250?start=50
http://movie.douban.com/top250?start=75

2.然后通过查看源码,发现电影名的代码如下:

肖申克的救赎
/ The Shawshank Redemption
如图,因为有一些英文名等描述,通过正则抓取有些干扰,可能还需要后续过滤。

根据以上信息,此程序主要分以下3个步骤:

二、构建url地址池

抓取top100电影名称
依次打印输出
依次写出代码

1.构建url地址池。代码如下:

mport urllib2
import re
# ----------确定url地址池------------
pre_url = 'http://movie.douban.com/top250?start='
top_urls = []
# 因为top100,每页25部电影,故为4页,从零开始
for num in range(4):top_urls.append(pre_url + str(num * 25))

2.抓取top100电影名称

# ------------抓取top100电影名称----------
top_content = []
top_tag = re.compile(r'<span class="title">(.+?)</span>')
for url in top_urls:content = urllib2.urlopen(url).read()pre_content = re.findall(top_tag, content)# 过滤不符合条件的list,得到最后的top100的listfor item in pre_content:if item.find(' ') == -1:top_content.append(item)

3.打印输出

top_num = 1
for item in top_content:print 'Top' + str(top_num) + '  ' + itemtop_num += 1

三、整理代码
我还是python新手,还没有太多的pythonic思想,也没有代码优化技巧,只能说是整理。
其次,个人习惯,在简单的代码里面我还是喜欢少用函数,尽量不隐藏代码的逻辑。
以下代码请参考,并欢迎提意见,希望得到大家的意见,谢谢!
整理后的代码如下:

# coding=utf-8
'''
本代码为自动抓取豆瓣top100电影代码
@pre_url url地址前缀,在这里为http://movie.douban.com/top250?start=
@top_urls url地址池
@top_tag 为抓取电影名正则表达式
'''import urllib2
import repre_url = 'http://movie.douban.com/top250?start='
top_urls = []
top_tag = re.compile(r'<span class="title">(.+?)</span>')
top_content = []
top_num = 1# ----------确定url地址池------------
# 因为top100,每页25部电影,故为4页,从零开始
for num in range(4):top_urls.append(pre_url + str(num * 25))# ------------抓取top100电影名称,并打印输出----------
top_tag = re.compile(r'<span class="title">(.+?)</span>')
for url in top_urls:content = urllib2.urlopen(url).read()pre_content = re.findall(top_tag, content)# 过滤并打印输出for item in pre_content:if item.find(' ') == -1:print 'Top' + str(top_num) + '  ' + itemtop_num += 1

抓取用户头像图片

import urllib.request
import re
import time#获取输入的帖子单页html
def getHtml2(url2):html2=urllib.request.urlopen(url2).read().decode('utf-8')return html2#抽取图片相关列表,并下载图片
def gettopic(html2):reg2=r'http://www.douban.com/group/topic/\d+'topiclist=re.findall(reg2,html2)x=0#限制下载的图片数for topicurl in topiclist:x+=1return topicurl#下载图片到本地
def download(topic_page):reg3=r'http://img3.douban.com/view/group_topic/large/public/.+\.jpg'imglist=re.findall(reg3,topic_page)i=1download_img=Nonefor imgurl in imglist:
#取图片ID为文件名img_numlist=re.findall(r'p\d{7}',imgurl)for img_num in img_numlist:download_img=urllib.request.urlretrieve(imgurl,'D:\python\code\girls\%s.jpg'%img_num)time.sleep(1) i+=1print(imgurl)return download_img#调用函数
page_end=int(input('请输入结束时的页码:'))
num_end=page_end*25
num=0
page_num=1
while num<=num_end:html2=getHtml2('http://www.douban.com/group/kaopulove/discussion?start=%d'%num)topicurl=gettopic(html2)topic_page=getHtml2(topicurl)download_img=download(topic_page)num=page_num*25page_num+=1else:print('采集完成!')

推荐我们的python学习基地,点击进入,看老程序是如何学习的!从基础的python脚本、爬虫、django、数据挖掘等编程技术,工作经验,还有前辈精心为学习python的小伙伴整理零基础到项目实战的资料,!每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节

编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法相关推荐

  1. 【Python_006】Python爬虫抓取豆瓣电影影评

    写在前面: 我在上一篇博客中[Python_005]利用jieba及wordcloud生成词频及词云图 ,为了测试切词和词云图的效果,从豆瓣爬了电影的100条短评,本篇博客就来分享一下如何爬豆瓣影评 ...

  2. python,抓取豆瓣电影,再也不用担心没有看不了的电影了

    1. 豆瓣抓站流程 分析url特征(菜鸟阶段) 对需要抓取的数据设计正则表达式 处理HTML中一些特征字符,换行符等 注意异常的处理和字符编码的处理 2. 实现的功能 简单的实现了抓取豆瓣电影Top1 ...

  3. 【python教程入门学习】Python爬虫抓取猫眼电影排行榜

    本节使用 Python 爬虫抓取猫眼电影网 TOP100 排行榜(https://maoyan.com/board/4)影片信息,包括电影名称.上映时间.主演信息. 在开始编写程序之前,首先要确定页面 ...

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

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

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

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

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

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

  7. 用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序

    抓取豆瓣电影(http://movie.douban.com/nowplaying/chengdu/)中的正在热映前12部电影,并按照评分排序,保存至txt文件 1 #coding=utf-8 2 f ...

  8. python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  9. Python爬虫爬取豆瓣电影Top250

    爬虫爬取豆瓣Top250 文章目录 爬虫爬取豆瓣Top250 完整代码 第一步获取整个网页并以html来解析 正则表达式来匹配关键词 所有信息写入列表中 存入Excel中 效果如图 本文学习自B站UP ...

最新文章

  1. android换肤动画,Android-换肤ThemeSkinning使用
  2. 一文读懂机器学习、数据科学、人工智能、深度学习和统计学之间的区别!
  3. 从阿里孵化钉钉谈起,大公司内部创业到底有多难?
  4. html:(31):层叠和重要性
  5. 【Zookeeper】查看ZK连接总数
  6. aaynctask控制多个下载进度_做进度计划一路关卡困难重重?通关攻略了解一下!...
  7. 组合数学1.1——棋盘的完美覆盖
  8. PyCharm主题、字体设置
  9. mysql处理微信表情
  10. java 打印堆栈_Java打印完整的堆栈信息
  11. 过去一年对我帮助最大的三本书
  12. 03_美国医疗保健行业的数据介绍
  13. ios播放器横竖屏切换的问题
  14. android 视频通话窗口切换,仿微信视频通话大小视图切换(SurfaceView实现)
  15. 破立之间:金融科技时代的普惠新机会、新挑战
  16. 【风马一族_php】NO0_搭建web服务器
  17. CentOS7创建普通用户
  18. 【整理】学习Android Studio时遇到的错误及解决方法(持续更新)
  19. 蚂蚁金融加入以色列区块链隐私解决方案公司A轮融资
  20. [转]Windows CE 6.0(PB6)离线安装版下载

热门文章

  1. 服务器开启虚拟控制台
  2. python中utf-8编码_Python 使用 UTF-8 编码(转)
  3. 完美解决微信页面返回不刷新问题
  4. 基于寒武纪CNCodec 做视频编解码遇到的一些问题
  5. 文件上传页面出现400错误的问题
  6. 我们且请仁兄到敝庄 水浒
  7. 聚合供应链,一键导入百万商品
  8. 【GetFeature】返回来自数据源的特征选择,包括几何和属性值
  9. 汇编idiv带符合除法指令。。。。
  10. 深信服edr终端漏洞