爬取豆瓣电影
爬取步骤:
# 1、#找到url地址 # url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0" # 2、解析URL,得到网页源码 # 3、从网页源代码里提取数据 # 4、保存数据
# -*- coding: utf-8 -*-
# @Author : Jackzz
import requests,json
# 1、#找到url地址
# url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0"
# 2、解析URL,得到网页源码
# 3、从网页源代码里提取数据
# 4、保存数据
def douban_spider(word,start_url):
# word = input("请输入你想要获取的电影类型(热门、最新、经典、可播放、冷门佳片、华语、欧美、韩国、日本、动作、喜剧、爱情、科幻、悬疑、恐怖、动画)\n: ")
# start_url = "https://movie.douban.com/j/search_subjects?type=movie&tag="+word+"&sort=recommend&page_limit=20&page_start={}"
# start_url ="https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start={}"
with open('douban.csv','a') as f:
f.write('电影名,主页信息,评分,图片链接\n') #注意逗号打成中文的不会报错,4个内容写到一列而无法写入到不同4列
#2、解析URL,得到网页源码,所有电影信息都在XHR 数据中
for i in range(25):#想爬几页这里设置改range数据
url= start_url.format(i*20) #url的&page_start=0 加载更多这里数值+20的变化
# print(url)
r = requests.get(url=start_url) #
# #page_code=r.content page_code是页面源码,但他是一个二进制类型数据
ret = r.content.decode()#为字符串类型
# # 3、从网页源代码里提取数据
result = json.loads(ret)
res = result['subjects'] #XHR 加载内容查看到是subjects:[{rate: "7.0", cover_x: 7142, title: "飞驰人生", url: "https://movie.douban.com/subject/30163509/",…},…]
for i in res:
title = i['title'] #电影名
url = i['url'] #主页地址
rate = i['rate'] #评分
cover = i['cover'] #图片地址
# 4、保存数据
f.write('{},{},{},{}\n'.format(title,url,rate,cover,))
if __name__ == '__main__':
word = input("请输入你想要获取的电影类型(热门、最新、经典、可播放、冷门佳片、华语、欧美、韩国、日本、动作、喜剧、爱情、科幻、悬疑、恐怖、动画)\n: ")
start_url = "https://movie.douban.com/j/search_subjects?type=movie&tag=" + word + "&sort=recommend&page_limit=20&page_start={}"
douban_spider(word,start_url)
逆风的方向更适合飞翔,不怕千万人阻挡,只怕自己投降!
浙公网安备 33010602011771号