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

'''

动态网页爬虫技术——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 = 'movie.douban/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)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页