资源简介
豆瓣电影数据集12万+用户影评40万+爬虫程序(两个csv,一个db数据库)
最近在学习爬虫,辛辛苦苦爬了几天,分享给大家。。可以用来做推荐系统
觉得好的朋友帮忙评论下打个5星~
可以看下这篇文章 https://blog.csdn.net/qq_37717661/article/details/81458779
代码片段和文件信息
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.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7373 2018-08-07 23:25 douban.py
目录 0 2018-08-21 16:33 __MACOSX\
文件 210 2018-08-07 23:25 __MACOSX\._douban.py
文件 12239589 2018-08-10 00:10 user.csv
文件 78450688 2018-08-06 16:22 douban.db
文件 814 2018-08-06 16:22 __MACOSX\._douban.db
文件 11426666 2018-08-08 20:38 movie.csv
- 上一篇:计算机网络_第5版_中文版_严伟_潘爱民译
- 下一篇:unity常用的800个脚本
相关资源
- MSTAR数据集全部JPEG格式图片
- mnist手写数字数据集的图片格式
- 国际安全事件关系发现_数据集
- ROCStories Cloze Test 数据集
- 数据挖掘关联规则分析数据集
- CEW闭眼数据集dataset_B_FacialImages_highR
- mnist_data数据集
- Pascal VOC 2007数据集用于物体检测
- 鸢尾花数据集决策树模型
- 符号网络数据集
- 显著性检测数据集 ECSSD
- FourSquare NYC 数据集
- 某市旅游大数据集成平台建设技术方
- 2019年全国大学生数学建模比赛C题上海
- fashion-mnist数据集和论文
- LVQ神经网络之人脸朝向识别(源程序
- 纯语音数据集
- cifar10图片版
- imdb.npz reuters.npz boston_housing.npz
- GatherPlatform数据抓取平台
- 用CNN用来对自己的数据集分类
- 遥感图像数据集
- 血管分割的STARE数据集
- CNN处理kdd99数据集tensorflow实现
- bookcrossing推荐数据集
- 吴恩达课程手势数据集
- 车辆检测训练集-车辆检测正样本集
- MNIST数据集的gist特征提取
- 亚马逊电商推进系统数据集
- 显著性检测数据集PASCAL-S
评论
共有 条评论