本文主要是介绍Python爬虫首秀:尝试爬取热播英美剧剧名及评分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一次尝试,踩了很多坑,面向百度编程实战~
在寻找具体的URL上,翻来覆去的研究的半天,毕竟,模拟浏览器发送请求,最为重要的就是保证请求的URL一定要是对的,稍有不慎便会失之毫厘谬以千里(有点夸张、夸夸其谈、夸……)
最初直接写了N行命令,各种尝试,如愿以偿后便想着对代码进行完善一下,然而对于小白而言,面向对象的写法,仍旧只是个说法,还未能落地。
废话不多说,附上代码,供大佬们批评指点~
# -*- coding: UTF-8 -*-# 导入第三方库
import requests
import jsonpath
import json# 定义方法,发送请求,返回响应数据
def __getRequests__():# 确定urlurl = 'https://m.douban.com/rexxar/api/v2/subject_collection/tv_american/items?'# 实现对应页码进行爬取pn = int(input('请输入查询页码:'))# 定义url对应的参数params = {"for_mobile": pn,"start": (pn - 1) * 18,"count": pn * 18,}# 定义请求头headers = {'Referer': 'https://m.douban.com/tv/american','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4128.3 Safari/537.36',}# 发送请求、获取响应response = requests.get(url, headers=headers, params=params).content.decode()# 把json响应转为字典dict_data = json.loads(response)return dict_data# 定义main方法,对响应数据进行处理并打印
def main():result = __getRequests__()# 将剧名存入列表Movie_name = jsonpath.jsonpath(result, '$..title')# 将剧名对应的评分存入列表Movie_value = jsonpath.jsonpath(result, '$..value')print('豆瓣最近热播的英美剧:')i = 0try:while True:print(f'剧名:{Movie_name[i]}|🌹❀🌹❀🌹|评分:{Movie_value[i]}')i += 1except:if i == 18:print('未完待续')else:print('读取结束,后续更新')if __name__ == '__main__':main()
人生苦短,学有所择,学有所需,学有所得~
进步不怕晚,不怕慢,远胜于止步不前。
下期再见~
这篇关于Python爬虫首秀:尝试爬取热播英美剧剧名及评分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!