import requests
from bs4 import BeautifulSoup
import re
import traceback def GetHtmlText(url):
for i in range(0,1): #尝试两次
try:
r=requests.get(url)
r.encoding = 'utf-8'
r.raise_for_status();
return r.text;
except:
traceback.print_exc()
continue
return def GetMovieInfo(url):
movieDict={}
for page in range(0,10):
try:
page_url = '?start='+str(page*25)
html = GetHtmlText(url+page_url)
Soup = BeautifulSoup(html, 'html.parser')
movie = Soup.find(name="ol",class_='grid_view') #所有电影信息
movieList = movie.find_all(name='li') #电影信息列表
for single in movieList: #循环单页的电影信息
num = single.find(name='em').string #电影排名
title1 = single.find_all(name='span',class_='title')
title2 = single.find(name='span',class_='other').string
if len(title1)==2:
movieTitle = title1[0].string+title1[1].string+title2.string
else:
movieTitle = title1[0].string+title2.string
classBD = single.find(name='div',class_='bd').contents #我也不知道为什么bs给我返回7个节点
movieActor = classBD[1].text
movieRating = re.findall(r'\d?\.\d?',str(classBD[3]))[0]
movieQuote = classBD[5].text
movieDict['num'] = num
movieDict['movieTitle'] = movieTitle
movieDict['actor'] = movieActor
movieDict['rating'] = movieRating
movieDict['quote'] = movieQuote
printMovieInfo(movieDict)
except:
traceback.print_exc() def printMovieInfo(Info):
try:
with open('/home/why/py/movieInfo.txt','a',encoding='utf-8') as f:
f.write(str(Info['num']+Info['movieTitle']+'\n'+Info['actor']+'\n评分:'+Info['rating']+'\n评价:'+Info['quote']+'\n'))
except:
traceback.print_exc() def main():
base_url = 'https://movie.douban.com/top250'
GetMovieInfo(base_url)
main()

结果:

记一次python爬虫实战,豆瓣电影Top250爬虫的更多相关文章

  1. <爬虫实战>豆瓣电影TOP250(三种解析方法)

    1.豆瓣电影排行.py # 目标:爬取豆瓣电影排行榜TOP250的电影信息 # 信息包括:电影名字,上映时间,主演,评分,导演,一句话评价 # 解析用学过的几种方法都实验一下①正则表达式.②Beaut ...

  2. 【Python爬虫】:使用高性能异步多进程爬虫获取豆瓣电影Top250

    在本篇博文当中,将会教会大家如何使用高性能爬虫,快速爬取并解析页面当中的信息.一般情况下,如果我们请求网页的次数太多,每次都要发出一次请求,进行串行执行的话,那么请求将会占用我们大量的时间,这样得不偿 ...

  3. [Python] 豆瓣电影top250爬虫

    1.分析 <li><div class="item">电影信息</div></li> 每个电影信息都是同样的格式,毕竟在服务器端是用 ...

  4. Python:python抓取豆瓣电影top250

    一直对爬虫感兴趣,学了python后正好看到某篇关于爬取的文章,就心血来潮实战一把吧. 实现目标:抓取豆瓣电影top250,并输出到文件中 1.找到对应的url:https://movie.douba ...

  5. Python抓取豆瓣电影top250!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:404notfound  一直对爬虫感兴趣,学了python后正好看到 ...

  6. python爬取豆瓣电影Top250(附完整源代码)

    初学爬虫,学习一下三方库的使用以及简单静态网页的分析.就跟着视频写了一个爬取豆瓣Top250排行榜的爬虫. 网页分析 我个人感觉写爬虫最重要的就是分析网页,找到网页的规律,找到自己需要内容所在的地方, ...

  7. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  8. 爬虫实战 豆瓣音乐top250 xpath

    刷知乎时刷到一篇爬取豆瓣音乐top250的,然后看了看,感觉自己的爬虫又更上一层楼了哈啊哈哈,尤其是发现xpath这么好用的东西. 不过也有一个感慨,就是有很多种方式都可以获得想要的数据,对于入门的新 ...

  9. Python 爬取豆瓣电影Top250排行榜,爬虫初试

    from bs4 import BeautifulSoup import openpyxl import re import urllib.request import urllib.error # ...

随机推荐

  1. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 agenda-group

    转载:https://blog.csdn.net/wo541075754/article/details/75332720 agenda-group 规则的调用与执行是通过StatelessKieSe ...

  2. Html页面Dom对象之Document

    Document 对象 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 提示:Document 对 ...

  3. test20180919 递归问题

    题意 定义 \[ f(n)=\left\{ \begin{array}{} 1 & n=1\\ f(n-f(f(n-1)))+1 & n>1 \end{array} \right ...

  4. device public set

    backgroud:  our dvertiser provide on device list of idfa to show ad to  target audience,however none ...

  5. wcat 进行iis 压力测试

    如何建立起WCAT Microsoft的Web容量分析工具(WCAT) 是测试你的客户-服务器网络配置的必备工具.这个工具在你的网络上对多种工作量的场景进行仿真,允许你确定你的网络和服务器的最佳配置. ...

  6. QT内使用OpenCV

    在QT内使用Opencv,调试了好久总是出问题. 開始在pro文件内进行了opencv的配置,然后就是不能识别#include包括文件,后来不知道什么原因.奇妙地 能够识别包括了. 但是,新的问题出现 ...

  7. 编程实现C库函数

    1.memcpy函数 memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域):拷贝多少个?有一个size变量控制拷贝的字节数: 函数原型:void * ...

  8. yarn 知识点

    yarn 与 npm 功能对应表格: 命令 yarn npm 初始化 yarn init npm init 安装项目所有包(注意) yarn npm install 添加 dependencies y ...

  9. webpack的3个路径配置项: assetsRoot、assetsSubDirectory、assetsPublicPath

    在 vue-cli 构建模版的配置文件config.js中有assetsRoot,assetsSubDirectory和assetsPublicPath这三个路径配置项 assetsRoot:构建输出 ...

  10. HBase的BlockCache

    BlockCache 首先要明白Block,在HBase里面存储的最小单元:在memstore向硬盘刷的时候,如果目标block的大小+size之后大于MAX_SIZE,将会新创建一个block来存储 ...