电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python爬蟲獲取豆瓣電影并寫入excel

瀏覽:82日期:2022-07-15 17:07:55

豆瓣電影排行榜前250 分為10頁,第一頁的url為https://movie.douban.com/top250,但實際上應該是https://movie.douban.com/top250?start=0 后面的參數0表示從第幾個開始,如0表示從第一(肖申克的救贖)到第二十五(觸不可及),https://movie.douban.com/top250?start=25表示從第二十六(蝙蝠俠:黑暗騎士)到第五十名(死亡詩社)。等等,

所以可以用一個步長為25的range的for循環參數

復制代碼 代碼如下:for i in range(0, 250, 25): print(i)

分析完頁面組成后,開始獲取頁面,直接request.get()發現沒有返回任何東西,輸出一下響應碼

url = ’https://movie.douban.com/top250?start=0’res = request.get(url=url)print(res.status_code)

發現返回響應碼418

以前沒見過這個,拉網線上網查一下,發現給get里面加一個header參數就行了

這里可以用自己瀏覽器的user-agent,如

headers = {’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36’}

或者用fake_agent(安裝直接用pip install fake_agent) 來為自己生成一個隨機的agent添加到header字典中

from fake_useragent import UserAgentheaders = {’User-Agent’: UserAgent().random}

之后就可以得到頁面源碼了。

然后使用lxml.etree,即xpath解析頁面源碼。用瀏覽器插件xpath finder快速定位到元素

Python爬蟲獲取豆瓣電影并寫入excel

import requestsimport lxml.etree as etreeurl = ’https://movie.douban.com/top250?start=0’headers = {’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36’}res = requests.get(url=url, headers=headers)print(res.text)html = etree.HTML(res.text)name = html.xpath('/html/body/div[3]/div[1]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]')print(name)

但是直接這樣子,解析到的是這樣的結果

[<Element span at 0x20b2f0cc488>]

Python爬蟲獲取豆瓣電影并寫入excel

關于這東西是什么,有文章寫的很好:https://www.jb51.net/article/132145.htm

這里我直接寫解決部分,在使用xpath解析時,后面加上/text()

name = html.xpath('/html/body/div[3]/div[1]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]/text()')

解決后,再使用xpath finder插件,一步一步獲取到電影所有數據

最后把這個寫在函數里,外面再套上一開始說的循環,就OK了

# -*- coding: utf-8 -*-import requestsimport lxml.etree as etreedef get_source(page): url = ’https://movie.douban.com/top250?start={}’.format(page) headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36’} print(url) res = requests.get(url=url, headers=headers) print(res.status_code) html = etree.HTML(res.text) for i in range(1, 26): name = html.xpath('/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[1]/a/span[1]/text()'.format(i)) info = html.xpath('/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[2]/p[1]/text()'.format(i)) score = html.xpath( '/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[2]/div/span[2]/text()'.format(i)) slogan = html.xpath( '/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[2]/p[2]/span/text()'.format(i)) print(name[0]) print(info[0].replace(’ ’, ’’)) print(info[1].replace(’ ’, ’’)) print(score[0]) print(slogan[0])n = 1for i in range(0, 250, 25): print(’第%d頁’ % n) n += 1 get_source(i) print(’==========================================’)

在定位時,發現有4部電影介紹沒有slogan,導致獲取到的信息為空列表,也就導致了list.append()會出錯。所以我加上了幾個差錯處理,解決方式可能有點傻,如果有更好的解決辦法,洗耳恭聽

代碼在最后可以看到

Python爬蟲獲取豆瓣電影并寫入excel

EXCEL保存部分

這里我用的xlwt

book = xlwt.Workbook()

sheet = book.add_sheet(u’sheetname’, cell_overwrite_ok=True)

創建一個sheet表單。

數據保存到一個大列表中,列表嵌套列表

再通過循環把數據導入到excel表單中

r = 1 for i in LIST: #有10頁 for j in i: #有25條數據 c = 2 for x in j: #有5組數據print(x)sheet.write(r, c, x)c += 1 r += 1

最后在保存一下

book.save(r’douban.xls’)

注意文件后綴要用xls,用xlsx會導致文件打不開

然后就大功告成了

打開文件,手動加入排名,等部分信息(這些也可以在程序里完成,我嫌麻煩,就沒寫,直接手動來的快)

Python爬蟲獲取豆瓣電影并寫入excel

前面的✓是我自己整的,用于記錄那些看過,那些沒看過

這也是我寫這個東西的最初的目的

完整代碼在下面,僅用于參考

# -*- coding: utf-8 -*-import requestsimport lxml.etree as etreeimport xlwtdef get_source(page): List = [] url = ’https://movie.douban.com/top250?start={}’.format(page) headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36’} print(url) res = requests.get(url=url, headers=headers) print(res.status_code) html = etree.HTML(res.text) for i in range(1, 26): list = [] name = html.xpath('/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[1]/a/span[1]/text()'.format(i)) info = html.xpath('/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[2]/p[1]/text()'.format(i)) score = html.xpath( '/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[2]/div/span[2]/text()'.format(i)) slogan = html.xpath( '/html/body/div[3]/div[1]/div/div[1]/ol/li[{}]/div/div[2]/div[2]/p[2]/span/text()'.format(i)) try: list.append(name[0]) except: list.append(’----’) try: list.append(info[0].replace(’ ’, ’’).replace(’n’, ’’)) except: list.append(’----’) try: list.append(info[1].replace(’ ’, ’’).replace(’n’, ’’)) except: list.append(’----’) try: list.append(score[0]) except: list.append(’----’) try: list.append(slogan[0]) except: list.append(’----’) List.append(list) return Listn = 1LIST = []for i in range(0, 250, 25): print(’第{}頁’.format(n)) n += 1 List = get_source(i) LIST.append(List)def excel_write(LIST): book = xlwt.Workbook() sheet = book.add_sheet(u’sheetname’, cell_overwrite_ok=True) r = 1 for i in LIST: #有10頁 for j in i: #有25條數據 c = 2 for x in j: #有5組數據print(x)sheet.write(r, c, x)c += 1 r += 1 book.save(r’douban1.xls’) #保存代碼excel_write(LIST)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: 豆瓣 Python
相關文章:
主站蜘蛛池模板: 耐热钢-耐磨钢-山东聚金合金钢铸造有限公司 | 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面 | 稳尚教育加盟-打造高考志愿填报平台_新高考志愿填报加盟_学业生涯规划加盟 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | IP检测-检测您的IP质量 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 非甲烷总烃分析仪|环控百科 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司 | 隧道窑炉,隧道窑炉厂家-山东艾瑶国际贸易 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 海水晶,海水素,海水晶价格-潍坊滨海经济开发区强隆海水晶厂 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 |