资源简介
豆瓣电影film数据集10万!
代码片段和文件信息
import logging
import random
import string
import requests
import time
from collections import deque
from urllib import parse
import pandas as pd
import re
from settings import User_AgentsAgent_IP
class DoubanSpider(object):
“““豆瓣爬虫“““
def __init__(selfformTypecountrygenres):
# 基本的URL
self.base_url = ‘https://movie.douban.com/j/new_search_subjects?sort=T&range=010&‘
self.full_url = self.base_url + ‘{query_params}‘
# 从User-Agents中选择一个User-Agent
self.headers = {‘User-Agent‘:random.choice(User_Agents)}
self.proxies = {‘http‘:random.choice(Agent_IP)}
# 可选参数
self.form_tag = form # 影视形式
self.type_tag = Type # 类型
self.countries_tag = country # 地区
self.genres_tag = genres #特色
#默认参数
self.sort = ‘T‘ # 排序方式默认是T表示热度
self.range = 0 10 # 评分范围
def encode_query_data(self):
“““对输入信息进行编码处理“““
if not (self.form_tag and self.type_tag and self.countries_tag and self.genres_tag):
all_tags = ‘‘
else:
all_tags = [self.form_tag self.type_tag self.countries_tag self.genres_tag]
query_param = {
‘sort‘: self.sort
‘range‘: self.range
‘tags‘: all_tags
}
# string.printable:表示ASCII字符就不用编码了
query_params = parse.urlencode(query_param safe=string.printable)
# 去除查询参数中无效的字符
invalid_chars = [‘(‘ ‘)‘ ‘[‘ ‘]‘ ‘+‘ ‘\‘‘]
for char in invalid_chars:
if char in query_params:
query_params = query_params.replace(char ‘‘)
# 把查询参数和base_url组合起来形成完整的url
self.full_url = self.full_url.format(query_params=query_params) + ‘&start={start}‘
‘‘‘
query_params = ‘tags=‘+str(self.form_tag)+‘‘+str(self.type_tag)+‘‘+str(self.countries_tag)+‘‘+\
str(self.genres_tag)
self.full_url = self.full_url.format(query_params=query_params) + ‘&start={start}‘
‘‘‘
def download_movies(self offset):
“““下载电影信息
:param offset: 控制一次请求的影视数量
:return resp:请求得到的响应体“““
full_url = self.full_url.format(start=offset)
print(full_url)
resp = None
try:
#方法1.USER_AGENT配置仿造浏览器访问 headers
#方法2.伪造Cookie,解封豆瓣IP cookies = jar
#jar = requests.cookies.RequestsCookieJar()
#jar.set(‘bid‘ ‘ehjk9OLdwha‘ domain=‘.douban.com‘ path=‘/‘)
#jar.set(‘11‘ ‘25678‘ domain=‘.douban.com‘ path=‘/‘)
#方法3.使用代理IP proxies
resp=requests.get(full_urlheaders=self.headersproxies=self.proxies)
except Exception as e:
print(resp)
logging.error(e)
return resp
def get_movies(self resp):
“““获取电影信息
:param resp: 响应体
:return movies:爬取到的电影信息“““
if resp:
if resp.status_code == 200:
# 获取响应文件中的电影数据
movies = dict(resp.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-01-05 21:57 新建文件夹\
文件 7373 2018-08-07 23:25 新建文件夹\Crawler program.py
文件 78450688 2018-08-06 16:22 新建文件夹\douban.db
文件 11426666 2018-08-08 20:38 新建文件夹\movie_10.csv
文件 12239589 2018-08-10 00:10 新建文件夹\use_10.csv
目录 0 2019-07-03 22:32 新建文件夹\__MACOSX\
文件 814 2018-08-06 16:22 新建文件夹\__MACOSX\._douban.db
文件 210 2018-08-07 23:25 新建文件夹\__MACOSX\._douban.py
相关资源
- 视觉诱发脑电数据集
- Penn Tree Bank (PTB)数据集
- 机器学习实战 源代码和数据集
- 微博情感分析数据集
- 网络入侵检测系统kddcup1999数据集
- kdd 99 全部数据集
- 使用FDDB数据集测试自己的人脸框架的
- C-MAPSS大型涡轮风扇发动机数据集
- Flickr社交网络数据集
- LED数码管数据集
- CNN交通标志识别GTSRB_源码和ppt
- 数据结构图谱构建与关系抽取数据集
- 零售POS数据集
- 英文字母识别数据集EnglishHand
- MIT数据库集
- 图书推荐数据集Book-Crossing
- mnist数据集png图片
- caff-lenet5数据集
- 各种格式机器学习常用的二分类数据
- 车牌正负样本训练集.zip
- 豆瓣图书评分数据集
- pagerank数据集.rar
- Tensorflow实现Mnist手写数据集的识别
- MNIST手写数字数据库
- MNIST手写数字数据集
- mnist数据集177086
- 安然邮件数据集
- TUM的一个SLAM数据集 下
- 花卉数据集-第二部分-7类7000张
- MAT_UCI数据集
评论
共有 条评论