好友
阅读权限 10
听众
最后登录 1970-1-1
流浪的二胡
发表于 2018-10-8 17:33
本帖最后由 流浪的二胡 于 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来模拟浏览器访问
暂时想到这么多,再接再厉 ~喽~
免费评分
查看全部评分
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。