爬取豆瓣电影top250比猫眼top100复杂了一点点,这里主要使用到的工具是BeautifulSoup网页解析库和正则表达式,个人认为,对于静态网页的爬取,Xpath查询语句和正则表达式是最有力的武器。

另外,对于python中文乱码现象,必要的时候需要考虑encode("UTF-8")编码和decode("GBK")解码

import requests

from bs4 import BeautifulSoup

import re

import pandas as pd

import time

film_url="https://movie.douban.com/top250"

url_set=["https://movie.douban.com/top250"]#第一页网站

url_setx=["https://movie.douban.com/top250"]#用于测试

for i in range(25,250,25):

url_set.append(film_url+"?start="+str(i)+"&filter=")

print(url_set)

name=[]#film name

director=[]

star=[]#film star

date=[]# film date

score=[]#film score

for url in url_set:

html=requests.get(url).content

x=BeautifulSoup(html)

y=x.find_all(name="img",attrs={"class":"","src":re.compile(".*jpg$")})

#print(y.string)

for i in y:

name.append(i.attrs["alt"])

y1=x.find_all(name="p",attrs={"class":""})

for i in y1:

n=re.search(pattern="导演: (.*)主(.*)",string=i.text.encode("UTF-8"))

if n is not None and n.group(1) is not None:

director.append(n.group(1))

else:

director.append(None)

if n is not None and n.group(2) is not None:

#star.append(n.group(2))

tmp=re.sub(string=n.group(2).encode("UTF-8"),pattern="演: ",repl="")

star.append(tmp)

else:

star.append(None)

m=re.search(pattern="[0-9]{4}",string=i.text.encode("UTF-8"))

if m is not None:

date.append(m.group(0))

else:

date.append(None)

y2=x.find_all(name="span",attrs={"class":"rating_num","property":"v:average"})

for i in y2:

if i is not None:

score.append(float(i.string))

else:

score.append(None)

time.sleep(2)

#cbind into a DataFrame

data={"name":name,"director":director,"star":star,"date":date,"score":score}

x=pd.DataFrame(data)

print(x)

python xpath爬取电影top100_python爬取豆瓣电影top250相关推荐

  1. 老板,今年有哪些大众好电影?(nodejs豆瓣电影爬虫)

    老板,今年有哪些大众好电影?(nodejs豆瓣电影爬虫) 前言 目标页面分析 设计思路 效果演示 GitHub 和源码 前言 现在看电影通常都会看豆瓣评分,虽然豆瓣本身有筛选功能,但是缺乏了一个重要元 ...

  2. 使用Python分析《我不是药神》豆瓣电影短评

    2019独角兽企业重金招聘Python工程师标准>>> 小爬怡情,中爬伤身,强爬灰灰.爬虫有风险,使用请谨慎,可能是这两天爬豆瓣电影爬多了,今天早上登录的时候提示号被封了(我用自己帐 ...

  3. 使用 Python 分析《我不是药神》豆瓣电影短评

    (点击上方蓝字,快速关注我们) 来源:一别丶经年 my.oschina.net/zhanglikun/blog/1845888 小爬怡情,中爬伤身,强爬灰灰.爬虫有风险,使用请谨慎,可能是这两天爬豆瓣 ...

  4. Python | 使用 Python 分析《我不是药神》豆瓣电影短评

    作者:一别丶经年 来源:见文末 小爬怡情,中爬伤身,强爬灰灰.爬虫有风险,使用请谨慎,可能是这两天爬豆瓣电影爬多了,今天早上登录的时候提示号被封了(我用自己帐号爬的,是找死呢还是在找死呢 ...),好 ...

  5. Python学习笔记--Flask小项目之仿豆瓣电影界面

    目录 知识点 效果图 前期准备 创建项目 创建视图 创建模板 1. 创建宏 第一个宏(itemGroup) 第二个宏(listGroup) 2. 创建父模板 3. 创建首页模板 4. 创建" ...

  6. 豆瓣电影的API接口豆瓣电影详情即将上映新片榜短影评

    豆瓣电影的API接口 电影列表API:http://api.douban.com/v2/movie/in_theaters?apikey=0df993c66c0c636e29ecbb5344252a4 ...

  7. 爬取ajax加载的豆瓣电影

    (一)前提:找到ajax异步加载的包接口,注意第一个电影名 我们把Request URL网址复制到地址栏得到: 上图是json格式数据,且第一个电影一致,说明我们找到了正确的ajax的json接口 出 ...

  8. python爬虫豆瓣电影到csv_爬虫豆瓣电影存入csv文件

    需要用到的第三方库: requests(Python HTTP请求工具) lxml(解析网页结构工具) beautifulsoup4(网页文档解析工具) 先贴上代码 importrequestsfro ...

  9. 电影评分数据分析python_豆瓣电影简单评分模型-从收集数据到建模分析

    思路: 从豆瓣上抓取数据[主要是评分,只是那个人数的百分比和最终评分,不过够用了] 一.收集数据 起始URL:https://movie.douban.com/j/new_search_subject ...

最新文章

  1. springboot RestTemplate httpclient
  2. rtsp连接断开_live555学习之RTSP连接建立以及请求消息处理过程
  3. gif透明背景动画_前端基础系列之bmp、jpg、png、gif、svg常用图片格式浅谈(二)...
  4. 串口服务器怎么测信号,串口服务器如何调试
  5. 【Python基础】Python中的高效迭代库itertools,排列组合随便求
  6. CG CTF RE Hello,RE!
  7. docker安装Tomcat
  8. vmware workstation pro 14 虚拟机无法开启、黑屏的解决方案汇总
  9. JS中通过call方法实现继承
  10. java八进制转十六进制_java-十进制、八进制、十六进制数互相转换
  11. 行内元素中间出现空隙
  12. uniapp页面传参使用encodeURIComponent转义特殊符号
  13. 漫话:如何给女朋友解释什么是BIO、NIO和AIO?
  14. Word打开时显示*模板*,删除模板
  15. 大神齐聚,算法大赛复赛晋级名单揭晓!
  16. Ubuntu 14 中给 APACHE2安装 SSL 模块 Enable SSL site on Ubuntu 14 LTS, Apache 2.4.7:
  17. git reset/git checkout./撤销操作
  18. 达梦数据库查询表结构
  19. esp32 esp8285 wf6000OTA升级小记
  20. idea打包jar的多种方式(总结-共三种)

热门文章

  1. 谷歌眼镜Mirror API开发指南之Contacts
  2. 【华为 OJ】记负均正2
  3. 华为2018 软件题AC
  4. DOM解析XML应用之铃声多多改歌曲名称
  5. python语法:类中object的用法
  6. android截长屏实现,android 手机截取长屏实例代码
  7. ILRuntime | 学习概要
  8. 黑苹果适合什么用途?_黑鲨六大配件:用途各不同,苹果安卓都能用
  9. position用法
  10. matlab interface,FREE金融数据Matlab接口(Finance Data Matlab Interface)