一、抓取豆瓣top250网页数据

import urllib.request as urlrequest
from bs4 import BeautifulSouptop250_url = "https://movie.douban.com/top250?start={}&filter="with open('./top250_f1.csv','w',encoding='utf8') as outputfile:outputfile.write("num#title#director#role#init_year#area\#genre#rating_num#comment_num#comment#url\n")for i in range(10):start = i*25url_visit = top250_url.format(start)crawl_content = urlrequest.urlopen(url_visit).read()http_content = crawl_content.decode('utf8')soup = BeautifulSoup(http_content,'html.parser')all_item_divs = soup.find_all(class_='item')for each_item_div in all_item_divs:pic_div = each_item_div.find(class_='pic')num = pic_div.find('em').get_text()   #排名href = pic_div.find('a')['href']      #电影链接title = pic_div.find('img')['alt']    #电影名称bd_div = each_item_div.find(class_='bd')infos = bd_div.find('p').get_text().strip().split('\n')infos_1 = infos[0].split('\xa0\xa0\xa0')director = infos_1[0][4:].rstrip('...').rstrip('/').split('/')[0]   #导演role = str(infos_1[1:])[6:].split('/')[0]                           #主演infos_2 = infos[1].lstrip().split('\xa0/\xa0')year = infos_2[0]    #上映时间area = infos_2[1]    #国家/地区genre = infos_2[2:]  #电影类型star_div = each_item_div.find(class_='star')rating_num = star_div.find(class_='rating_num').get_text()      #评分comment_num = star_div.find_all('span')[3].get_text()[:-3]      #评价数量quote = each_item_div.find(class_='quote')inq =''try:inq = quote.find(class_='inq').get_text()  #一句话评价except:inq = ''outputfile.write('{}#{}#{}#{}#{}#{}#{}#{}#{}#{}#{}\n'.\format(num,title,director,role,year,area,\genre,rating_num,comment_num,inq,href))print('ok!!')

二、 抓取上述代码中豆瓣top250缺失的详细数据

import urllib
import urllib.request as urlrequest
import json
import time
import random
import pandas as pddf = pd.read_csv("./top250_f1.csv",sep = "#", encoding = 'utf8',names=['num','title','director','role','init_year','area',\'genre','rating_num','comment_num','comment','url'])
urlsplit = df.url.str.split('/').apply(pd.Series)
num=0
id_list = list(urlsplit[4])[1:]#这里写几个可用的IP地址和端口号,只抓250个页面,有两三个IP就够了
#(建议使用此代理:http://www.xicidaili.com/或http://www.data5u.com/)IP_list = ['166.111.80.162:3128','39.134.153.26:8080' ]
IP=random.choice(IP_list)
with open('top250_f5.csv', 'w',encoding='utf8') as outputfile:outputfile.write("num#rank#alt_title#title#pubdate#language\#writer#\director#cast#movie_duration#year#movie_type#tags#image\n")     proxy = urlrequest.ProxyHandler({'https': '' + IP}) opener = urlrequest.build_opener(proxy)opener.addheaders = [('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4)AppleWebKit/603.1.30 \(KHTML, like Gecko) Version/10.1 Safari/603.1.30')]           urlrequest.install_opener(opener) for id in id_list:url_visit = 'https://api.douban.com/v2/movie/{}'.format(id)crawl_content = urlrequest.urlopen(url_visit).read() json_content = json.loads(crawl_content.decode('utf-8'))rank = json_content['rating']['average']alt_title = json_content['alt_title']image = json_content['image']title = json_content['title']pubdate = json_content['attrs']['pubdate']language = json_content['attrs']['language']try:writer = json_content['attrs']['writer']except:writer = 'None'director = json_content['attrs']['director']try:cast = json_content['attrs']['cast']except:cast='None'movie_duration = json_content['attrs']['movie_duration']year = json_content['attrs']['year']movie_type = json_content['attrs']['movie_type']tags = json_content['tags']num = num +1data ="{}#{}#{}#{}#{}#{}#{}#{}#{}#{}#{}#{}#{}#{}\n".\format(num,rank,alt_title,title,pubdate,language,writer,\director,cast,movie_duration,year,movie_type,tags,image)print(data)outputfile.write(data)time.sleep(10)print("ok!!!")

python——爬虫(豆瓣top250)相关推荐

  1. Python爬虫豆瓣电影top250

      我的另一篇博客,Python爬虫豆瓣读书评分9分以上榜单   有了上次的基础,这次简单爬了下豆瓣上电影TOP250,链接豆瓣电影TOP250.   打开链接,查看网页源代码,查找我们需要的信息的字 ...

  2. 第一篇CSDN博客 python爬虫豆瓣排名前250的电影

    ## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影 1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘 ...

  3. python爬虫 豆瓣影评的爬取cookies实现自动登录账号

    python爬虫 豆瓣影评的爬取cookies实现自动登录账号 频繁的登录网页会让豆瓣锁定你的账号-- 网页请求 使用cookies来实现的自动登录账号,这里的cookies因为涉及到账号我屏蔽了,具 ...

  4. python爬虫-豆瓣爬取数据保存为html文件

    接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...

  5. python爬虫—豆瓣电影海报(按类别)

    原文地址:http://www.alannah.cn/2019/04/06/getdouban/ python爬虫-豆瓣电影海报 目标:通过python爬虫在豆瓣电影上按类别对电影海报等数据进行抓取, ...

  6. python爬虫豆瓣网TOP250电影海报图片

    最近打算用爬虫爬取一些资料,主要是图片来扩充数据库 先用一些文字信息练手 还是第三方的requests好用呢,比python自带的urllib 好用呢 import requests from bs4 ...

  7. 爬虫-豆瓣top250,东方财富网动态数据

    ~满满干货分享 一.豆瓣top250爬取过程 (学习视频:Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析_哔哩哔哩_bilibili) 1.爬取网页 def askUR ...

  8. 爬虫豆瓣TOP250电影数据

    今天是开通博客的第一天 目的 记录 爬取豆瓣TOP250电影数据 目的 我写博客的目的很简单,主要是想记录一些自己学习python的历程,后期包括一些其他方面的学习,目前在看唐松老师写的<Pyt ...

  9. Python爬虫——豆瓣读书

    准备 豆瓣读书网址是:https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=880&type=T 红色箭头标记的就是我们要获取的信息,我们有 ...

  10. 《Forward团队-爬虫豆瓣top250项目-设计文档》

    队长博客:http://www.cnblogs.com/mazhuangmz/ 成员:马壮,李志宇,刘子轩,年光宇,邢云淇,张良 设计方案: 1.能分析HTML语言: 2.提取重要数据,并保存为文本文 ...

最新文章

  1. VTK:小部件之ImageTracerWidgetInsideContour
  2. *PAT_B_1005_Java(25分)
  3. java axmlprinter_安卓xml配置文件解析工具-AXMLPrinter2.jar(androidmanifest.xml 反编译)下载官方最新版-西西软件下载...
  4. c++ map 多线程同时更新值 崩溃_深入理解并发安全的 sync.Map
  5. WinINet function(2)Request
  6. SQL语法集锦一:SQL语句实现表的横向聚合
  7. HAOI2008 移动玩具
  8. 推荐五个免费UML建模工具
  9. 基于Openfire Smack开发即时通讯应用、获取离线消息,发送消息,联系人列表,添加好友(三)
  10. java 全角_java全角、半角字符的关系以及转换详解
  11. 迅雷导出ed2k到eMule链接无效处理
  12. 单片机c语言 软件抗干扰,单片机软件抗干扰的几种常见方法
  13. Java 内部类详解
  14. 20分钟配置 让Win8 DP与Win7和平共存
  15. 工作流中实现一个节点多个节点的顺序审批
  16. SLM.rar_SLM 相位_slm matlab_叉形光栅matlab_涡旋相位_计算全息
  17. niuke --abc
  18. c++国密算法SM2加密解密demo
  19. vm虚拟机的中文版安装
  20. Zillow“炒房”失败,算法神话破灭了吗?

热门文章

  1. 关闭WordPress站内容搜,杜绝违禁词在站内恶意搜索
  2. 更改mysql端口(全程细致)
  3. 中南财经政法大学大学21年计算机考研情况 专硕进复试平均分343.4分
  4. 智能称体脂称实现(datasheet篇)
  5. docker环境下docker-compose一键式搭建skywalking链路追踪服务
  6. 狗狗的年龄和人年龄的关系?
  7. FFMPEG对视频进行裁剪
  8. Nexus 5 Android 6.0.1刷机、Root
  9. 表的操作--创建表(简单)
  10. vue使用lodop打印控件