Python3 爬取豆瓣电影 学习笔记
本帖最后由 流浪的二胡 于 2018-10-8 17:34 编辑最近新学了一个基础的爬虫,很基础~~所以会简单些。
https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort=time&page_limit=20&page_start=0
要爬取网站中需要的信息用红色箭头标出。
这是要用到的两个字典
subjects中
subjects":[{"rate":"5.7","cover_x":1923,"title":"怪兽","url":"https:\/\/movie.douban.com\/subject\/30317800\/","playable":true,"cover":"https://img3.doubanio.com\/view\/photo\/s_ratio_poster\/public\/p2533963360.jpg","id":"30317800","cover_y":3000,"is_new":true}
rate:评分
title:标题
url:网址
cover:图片地址
网站内容类型是json对象,后续要用到import json包中的loads方法进行解码。
from urllib import request
import json #豆瓣电影中content-type是json对象,因此需要用到json对象中的loads方法将其解码。
import parser
url="https://movie.douban.com/j/search_tags?type=movie&source="
req = request.Request(url) #发起请求
res = request.urlopen(req).read().decode('utf-8') #访问并获取网站内容 #将字节流转化成utf-8编码
#print(res,type(res)) 查看res的内容、类型
json_res = json.loads(res) #对res中的数据进行解码,转换成dict类型
#print(json_res,type(json_res))
tags = json_res['tags']
print(tags)
for tag in tags:
tag = {
'tag':tag
}
tag_url = 'https://movie.douban.com/j/search_subjects?type=movie&' \
'tag=%E7%83%AD%E9%97%A8&sort=time&page_limit=20&page_start=0'
req = request.Request(tag_url)
response = request.urlopen(req).read().decode('utf-8')
response_dict = json.loads(response)
for movie in response_dict['subjects']:
print('rate',movie['rate'],'title',movie['title'])
运行结果。
后续完善的话可以通过user-agent来模拟浏览器访问
暂时想到这么多,再接再厉 ~喽~ 谢谢分享 最近学的, 爬取位置几乎一样
import requests
import json
url = "https://movie.douban.com/j/search_subjects"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}
for page_start in range(0,101,20):
params = {
"type": "movie",
"tag": "热门",
"sort": "recommend",
"page_limit": "20",
"page_start": "page_start",
}
response = requests.get(url, headers=headers, params=params)
content_json = response.content.decode("utf-8")
content = json.loads(content_json)
for movie in content['subjects']:
print(content['subjects'].index(movie), movie['title'], movie['rate'])
加油加油 , 感觉爬豆瓣电影是每个学习 py 的入门课{:1_918:} 多谢分享。
有时间研究一下 谢谢啦! 想学,有没有完整的教程 厉害 小活板,你为何这么优秀呢,告诉我 还在学python基础…… 多用fiddler抓包工具! Autom 发表于 2018-10-9 08:58
多用fiddler抓包工具!
好建议!{:1_919:}
页:
[1]
2