python——爬虫(豆瓣top250)
一、抓取豆瓣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)相关推荐
- Python爬虫豆瓣电影top250
我的另一篇博客,Python爬虫豆瓣读书评分9分以上榜单 有了上次的基础,这次简单爬了下豆瓣上电影TOP250,链接豆瓣电影TOP250. 打开链接,查看网页源代码,查找我们需要的信息的字 ...
- 第一篇CSDN博客 python爬虫豆瓣排名前250的电影
## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影 1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘 ...
- python爬虫 豆瓣影评的爬取cookies实现自动登录账号
python爬虫 豆瓣影评的爬取cookies实现自动登录账号 频繁的登录网页会让豆瓣锁定你的账号-- 网页请求 使用cookies来实现的自动登录账号,这里的cookies因为涉及到账号我屏蔽了,具 ...
- python爬虫-豆瓣爬取数据保存为html文件
接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...
- python爬虫—豆瓣电影海报(按类别)
原文地址:http://www.alannah.cn/2019/04/06/getdouban/ python爬虫-豆瓣电影海报 目标:通过python爬虫在豆瓣电影上按类别对电影海报等数据进行抓取, ...
- python爬虫豆瓣网TOP250电影海报图片
最近打算用爬虫爬取一些资料,主要是图片来扩充数据库 先用一些文字信息练手 还是第三方的requests好用呢,比python自带的urllib 好用呢 import requests from bs4 ...
- 爬虫-豆瓣top250,东方财富网动态数据
~满满干货分享 一.豆瓣top250爬取过程 (学习视频:Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析_哔哩哔哩_bilibili) 1.爬取网页 def askUR ...
- 爬虫豆瓣TOP250电影数据
今天是开通博客的第一天 目的 记录 爬取豆瓣TOP250电影数据 目的 我写博客的目的很简单,主要是想记录一些自己学习python的历程,后期包括一些其他方面的学习,目前在看唐松老师写的<Pyt ...
- Python爬虫——豆瓣读书
准备 豆瓣读书网址是:https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=880&type=T 红色箭头标记的就是我们要获取的信息,我们有 ...
- 《Forward团队-爬虫豆瓣top250项目-设计文档》
队长博客:http://www.cnblogs.com/mazhuangmz/ 成员:马壮,李志宇,刘子轩,年光宇,邢云淇,张良 设计方案: 1.能分析HTML语言: 2.提取重要数据,并保存为文本文 ...
最新文章
- VTK:小部件之ImageTracerWidgetInsideContour
- *PAT_B_1005_Java(25分)
- java axmlprinter_安卓xml配置文件解析工具-AXMLPrinter2.jar(androidmanifest.xml 反编译)下载官方最新版-西西软件下载...
- c++ map 多线程同时更新值 崩溃_深入理解并发安全的 sync.Map
- WinINet function(2)Request
- SQL语法集锦一:SQL语句实现表的横向聚合
- HAOI2008 移动玩具
- 推荐五个免费UML建模工具
- 基于Openfire Smack开发即时通讯应用、获取离线消息,发送消息,联系人列表,添加好友(三)
- java 全角_java全角、半角字符的关系以及转换详解
- 迅雷导出ed2k到eMule链接无效处理
- 单片机c语言 软件抗干扰,单片机软件抗干扰的几种常见方法
- Java 内部类详解
- 20分钟配置 让Win8 DP与Win7和平共存
- 工作流中实现一个节点多个节点的顺序审批
- SLM.rar_SLM 相位_slm matlab_叉形光栅matlab_涡旋相位_计算全息
- niuke --abc
- c++国密算法SM2加密解密demo
- vm虚拟机的中文版安装
- Zillow“炒房”失败,算法神话破灭了吗?