豆瓣信息爬取

爬虫是根据自己所需在网络中进行信息爬取
注意:*** 网络爬虫要在法律允许范围内进行,切记不要越线; ***

#引入库
import requests
import urllib.request
import lxml
import lxml.html
from bs4 import  BeautifulSoup
import unicodecsv as ucsv
import re
import csv
import json
import pandas as pd
from lxml import etree
import time

1、根据豆瓣信息分类页面,查看Network,在刷新内容,就会出现图一中标红的文件,点击就会看见图二中电影的信息;
我们可以更改年限来爬去不同年代的电影的信息;
图一

图二
代码

movie_result = pd.DataFrame()
datas=[]
urls=[]
a = ["https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=%E7%94%B5%E5%BD%B1&start={}&year_range=2017,2017".format(j) for j in range(0,1000,20)]
b = ["https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=%E7%94%B5%E5%BD%B1&start={}&year_range=2016,2016".format(j) for j in range(0,1000,20)]
c = ["https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=%E7%94%B5%E5%BD%B1&start={}&year_range=2015,2015".format(j) for j in range(0,1000,20)]
urls.extend(a)
urls.extend(b)
urls.extend(c)
a=0
for j in urls:print(j)try:headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}response = requests.get(j, headers=headers)    bs = json.loads(response.text)except Exception as error:print(error)continuetime.sleep(5)for i in bs['data']:casts = i['casts']  #主演directors = i['directors']  #导演rate = i['rate'] #评分title = i['title'] #片名url = i['url']  #网址datas.append([title,rate,directors,casts,url])a+=0if a%50==0:time.sleep(10)
# 防止程序电脑关机,保存信息到表格中
pp= pd.DataFrame(datas)
pp.to_csv('./data1.csv',index=False)

爬取信息如下:

2、根据第一次爬取的信息,我们可以得到每部电影的具体url,来爬取他具体的信息,如年代,时长,主演,导演,国家,评分等;我们根据第一得到的url,来获取该电影的IMDB连接来获取后期要爬取的票房;

图三
代码

o = pd.read_csv('./data.csv')
datas_1=[]
a=0
for i in o['4']:headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}try:html = requests.get(i,headers = headers)print(html)bs = etree.HTML(html.text)except:print('错误')time.sleep(2)system=[]#类型for i in bs.xpath("//div[@id = 'info']/span[@property='v:genre']"):system.append(i.text)try:runtime = bs.xpath("//div[@id = 'info']/span[@property='v:runtime']")[0].text#时间——片长except:runtime=Nonetry:Time = bs.xpath('//div[@id = "content"]/h1/span')[1].text #时间_年except:Time=Nonetry:IMDB = bs.xpath("//div[@id = 'info']/a")[-1].xpath('@href')#IMDBexcept:IMDB=Noneprint([IMDB,Time,runtime])datas_1.append([IMDB,Time,runtime,system])a+=1print(a)if a%50==0:time.sleep(20)time.sleep(5)
#pp= pd.DataFrame(datas_1)
pp.to_csv('./data2.csv',index=False)

爬取信息如下:

3、根据我们第二步爬取的IMDB的url,我们来爬去该电影的票房国家
代码

pp = pd.read_csv('./data2.csv')
pp.columns=['url','年','时长','leix']
data_7=[]
for i in pp['url']:try:data_7.append(i[2:-2])except:data_7.append(None)
import numpy as np
data_1000=[]
u = 0
for i in data_7:print(i)if i==None:print(i)money=Nonecity=Noneelse:if i[:27]!='https://www.imdb.com/title/':money=Nonecity=Noneelse:try:headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}#requests.packages.urllib3.disable_warnings()r = requests.get(i)html = etree.HTML(r.text)money=html.xpath("//div[@id = 'titleDetails']/div//*[text()='Cumulative Worldwide Gross:']/../text()")#票房city =html.xpath("//div[@id = 'titleDetails']/div//*[text()='Country:']/../a/text()")#国家Time =html.xpath("//div[@id = 'titleDetails']/div//*[text()='Runtime:']/../time/text()")#时长print([money,city,Time])#time.sleep(3)except:print('错误')money=Nonecity=NoneTime=None
#     if u%50==0:
#         time.sleep(10)u+=1print(u)data_1000.append([money,city,Time])print(len(data_1000))pp.to_csv('./data3.csv',index=False)

爬取信息如下:

感谢评论点赞!

Python-基于request豆瓣电影票房信息爬取,简单粗暴相关推荐

  1. 豆瓣电影Top250信息爬取并保存到excel文件中

    豆瓣电影Top250下载并保存到excel文件中 效果图 前言 确定目标网页url 爬取过程 导入相关库 页面内容的获取 页面解析 数据提取 主函数的编写 函数调用 数据存储 完整代码 结语 效果图 ...

  2. Python豆瓣电影评论的爬取及词云显示

    Python豆瓣电影评论的爬取及词云显示 课程设计论文链接 前言 开发工具.核心库 系统相关技术介绍 系统分析与设计 系统功能模块组成 实现功能和目标 爬取模块设计 爬取过程中下一页的处理 窗口界面设 ...

  3. python爬虫实战三:近十年中国电影票房数据爬取与分析

    近十年中国电影票房数据爬取与分析 前言 爬取 分析 十年top10 年度top5 每年电影数 每年总票房 二八原则 代码与数据 前言 这篇文章主要讲述的是近十年(2010-2019)中国电影票房数据的 ...

  4. 请访问豆瓣电影网站,爬取4~10部电影信息(电影名、导 演、演员、海报url链接,预报片视频链接),并结合GUI界面展现电影信息,并可以根据选择的电影名, 下载指定预告片视频到本地并显示预告片。GUI

    请访问豆瓣电影网站,爬取4~10部电影信息(电影名.导 演.演员.海报url链接,预报片视频链接),并结合GUI界面展现电影信息,并可以根据选择的电影名, 下载指定预告片视频到本地并显示预告片.GUI ...

  5. 项目三:近10年来中国电影票房数据爬取分析

    近10年来中国电影票房数据爬取分析 前言 数据采集与存储 数据清洗和简单分析 引入库,导入数据 近10年top 年度top5 每年电影数 每年总票房 结论 二八原则 end 点击跳转到总目录 前言 这 ...

  6. 用Scrapy对豆瓣top250进行电影详细信息爬取

    简述 为了练习简单的Pandas操作,我用Scrapy爬取了豆瓣Top250的电影信息.Top250页面展现的电影信息和具体电影页面所呈现的内容有些不同(比如演员信息),所以爬取总共用了两部分代码.此 ...

  7. 基于scrapy下的租房信息爬取与数据展示工具的设计与实现

    环境:python 3.6.0 Anaconda custom 64bit 4.3.0 Pycharm x64 专业版 2018.1.2 Web strom x64 专业版 2018.1.3 scra ...

  8. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

  9. python爬取豆瓣电影top250_Python爬虫——爬取豆瓣电影Top250代码实例

    利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中 ...

  10. python爬虫猫眼电影票房_python爬取猫眼电影top100排行榜

    爬取猫眼电影TOP100(http://maoyan.com/board/4?offset=90) 1). 爬取内容: 电影名称,主演, 上映时间,图片url地址保存到mariadb数据库中; 2). ...

最新文章

  1. 技术图文:双指针在链表问题中的应用
  2. jq判断滚动条向上还是向下
  3. 安装mysql出现错误_安装Mysql时出现错误及解决办法
  4. tensorflow2caffe(1) : caffemodel解析,caffemodel里面到底记录了什么?
  5. c# getresponsestream返回byte[]_C# 基础知识系列-13 常见类库(三)
  6. 【Python】Python中对目录路径的要求
  7. pythonfor循环加2_初中生教你编程---python(for循环)part 2
  8. Java中反射性能测试
  9. 浅谈JS中的原型对象和原型链
  10. MT6763,MT6763T(P23),MT6750T,MT6755(P10)参数比较
  11. 完成一份diy计算机组装方案,DIY新手电脑装机教程:自己组装电脑全过程详细图解教学...
  12. python demo.py_python,pycharm_【已解决】pycharm 运行 web.py demo文件问题,python,pycharm - phpStudy...
  13. L44. 通配符匹配
  14. 阿里云linux服务器安装ssh(从登录的坑开始,心酸)
  15. 多少开发人员 饿了么_开发个类似饿了么外卖app要多少钱
  16. 基于STM32单片机的步数测量系统(免费开源)
  17. mavon-editor编辑器与图片上传
  18. Stata画出数据的时间序列折线图和拟合趋势线
  19. C语言删除字符串的所有尾部空格
  20. JS把加号当成连接符

热门文章

  1. 27个常用stata命令(2)
  2. 10万字公安大数据平台建设项目方案
  3. 基于Spark的公安大数据实时运维技术实践
  4. 解决Sheet can not be presented because the view is not in a window这样的问题
  5. 软件工程(2018)结对编程第2次作业
  6. 打开心扉计算机谱子,教你演唱咏叹调《人们叫我咪咪》(附曲谱)丨选自普契尼歌剧《艺术家的生涯》...
  7. C语言简单游戏编程入门之四子棋
  8. 智慧社区中的物联网产品应用
  9. Unity表情聊天(NGUI图文混排)
  10. 八种排序java实现