& # 39;& # 39;& # 39; 动态网页爬虫技术——API请求 采用寻找API并传递有效参数重放API的方法,是一个很通用的方法,在很多网站都可以使用。 优点:速度快,结果精简 案例:提取豆瓣热度排名前100的电影名称和评分以及在豆瓣的地址 & # 39;& # 39;& # 39;
爬虫豆瓣热榜上最终结果 <代码>进口requestsimport jsonimport大熊猫作为pddef page_pachong: content_res1=[]我的范围:印刷+ & # 39;页开始……& # 39;)page_start=str #注释1:一页有20条数据,爬取100条,而page_start起始为0,因此用一个我,从0到4循环5次,后面URL是个字符串类型,这里用str方法进行类型转换,转成str类型、方便后面调=& # 39;用URL https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=& # 39;+ page_start #注释2:每一次循环只改变page_start的值,所以每次在最后修改这个值header={& # 39;用户代理# 39;:& # 39;Mozilla 537.36/5.0 AppleWebKit/铬/54.0.2840.99 Safari 537.36 & # 39;} requests.packages.urllib3。disable_warnings #加上这行代码即可,关闭安全请求警告(出现警告是由于下面参数验证:真/假的,默认是真正的,用于验证SSL证书开关)=响应请求。获取内容=response.content.decode打印content_list=json.loads[& # 39;主题# 39;]#注释3:返回的内容经过解码方法解码,变成字符串类型,得到json格式的字符串,用加载方法,将内容解析成一个字典格式的内容,存储在content_list,最后加上”(& # 39;主题# 39;]”是用来解析内容,不是所有内容都这么写# # json模块有两个主要方法——json.loads和json。转储,前一个是用来解码JSON数据的,后一个是编码JSON数据的项目在content_list: #注释4:content_list数组对象,做一个循环分支,分条提取标题=项目[& # 39;标题# 39;]#注释5:每条数据是字典类型的对象,写对应的键名得到想要的值,这里得到电影的名称率=项目[& # 39;率# 39;]#注释6:这里得到电影的评分链接=项目[& # 39;url # 39;] #注释7:这里得到电影的豆瓣链接打印content_res={& # 34;标题# 34;:标题、& # 34;率# 34;:速度,& # 34;链接# 34;:链接}content_res1。添加返回content_res1def save_excel: pf=pd。DataFrame订单=[& # 34;标题# 34;& # 34;率# 34;,& # 34;链接# 34;]#指定列的顺序pf=pf(秩序)file_path=pd。ExcelWriter #打开excel文件pf.fillna #替换空单元格pf.to_excel file_path。savecontent_res1=page_pachongsave_excel
0 留言