豆瓣电影数据爬取源码(爬虫豆瓣热度排名前100的电影名称和评分以及在豆瓣的地址)

 2024-02-24  阅读 927  评论 0

摘要:动态网页爬虫技术——API请求采用寻找API并传递有效参数重放API的方法,是一个很通用的方法,在很多网站都可以使用。优点:速度快,结果精简案例:提取豆瓣热度排名前100的电影名称和评分以及在豆瓣的地址爬虫豆瓣热榜TOP最终结果import requestsimport jsonimport p

'''

动态网页爬虫技术——API请求

采用寻找API并传递有效参数重放API的方法,是一个很通用的方法,在很多网站都可以使用。

优点:速度快,结果精简

案例:提取豆瓣热度排名前100的电影名称和评分以及在豆瓣的地址

'''

豆瓣电影数据爬取源码(爬虫豆瓣热度排名前100的电影名称和评分以及在豆瓣的地址)(1)

爬虫豆瓣热榜TOP最终结果

import requests import json import pandas as pd def page_pachong(): content_res1 = [] for i in range(5): print('第' str(i 1) '页开始……') page_start = str(i*20) #注释1:一页有20条数据,爬取100条,而page_start起始为0,因此用一个i,从0到4循环5次,后面URL是个字符串类型,这里用str()方法进行类型转换,转成str类型,方便后面调用 url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=热门&sort=recommend&page_limit=20&page_start=' page_start #注释2:每一次循环只改变page_start的值,所以每次在最后修改这个值 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'} requests.packages.urllib3.disable_warnings() #加上这行代码即可,关闭安全请求警告(出现警告是由于下面参数verify:Ture/False,默认是Ture,用于验证SSL证书开关) response = requests.get(url=url,headers=headers,verify=False) content = response.content.decode() print(content) content_list = json.loads(content)['subjects'] #注释3:返回的content经过decode()方法解码,变成字符串类型,得到json格式的字符串,用loads()方法,将content解析成一个字典格式的内容,存储在content_list,最后加上“['subjects']”是用来解析内容,不是所有内容都这么写 # #json模块有两个主要方法——json.loads()和json.dumps(),前一个是用来解码JSON数据的,后一个是编码JSON数据的 for item in content_list: #注释4:content_list数组对象,做一个循环分支,分条提取 title = item['title'] #注释5:每条数据是字典类型的对象,写对应的Key名得到想要的值,这里得到电影的名称 rate = item['rate'] #注释6:这里得到电影的评分 link = item['url'] #注释7:这里得到电影的豆瓣链接 print(title, rate, link) content_res = {"title":title,"rate":rate,"link":link} content_res1.append(content_res) return content_res1 def save_excel(content_res1): pf = pd.DataFrame(content_res1) order = ["title","rate","link"] #指定列的顺序 pf = pf[order] file_path = pd.ExcelWriter('tongji_reslut.xlsx') #打开excel文件 pf.fillna(' ',inplace=True) #替换空单元格 pf.to_excel(file_path, encoding='utf-8', index=False, sheet_name="sheet1") file_path.save() content_res1 = page_pachong() save_excel(content_res1)

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/ceae5Cz0ABg8EVA.html

发表评论:

管理员

  • 内容265846
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.1003秒, 内存占用1.33 MB, 访问数据库18次