资源简介
代码片段和文件信息
import logging
import random
import string
import requests
import time
from collections import deque
from urllib import parse
from bs4 import BeautifulSoup as beaut_soup
import pandas as pd
import re
# from settings import User_AgentsAgent_IP
class DoubanSpider(object):
“““豆瓣爬虫“““
def __init__(self form Type country genres):
# 基本的URL
# self.base_url = ‘https://movie.douban.com/tag/#/?sort=S&range=010&‘
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.headers = {‘User-Agent‘: ‘Mozilla/4.0‘}
# 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_url headers=self.headers) # proxies=self.proxies
except Exception as e:
print(resp)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8006 2020-12-13 16:38 璇曢獙1.0.py
文件 755 2020-12-13 16:38 __MACOSX\._璇曢獙1.0.py
目录 0 2020-12-13 16:46 data\
文件 212 2020-12-13 16:46 __MACOSX\._data
文件 6148 2020-12-13 16:46 data\.DS_Store
文件 120 2020-12-13 16:46 __MACOSX\data\._.DS_Store
文件 15079 2020-12-13 16:41 data\movie.csv
文件 235 2020-12-13 16:41 __MACOSX\data\._movie.csv
文件 15079 2020-12-13 16:41 data\movie.csv
文件 235 2020-12-13 16:41 __MACOSX\data\._movie.csv
- 上一篇:python 画黄花代码(基于Turtle)
- 下一篇:神经网络预测控制
相关资源
- python 画黄花代码(基于Turtle)
- python 常用方法实现()
- 百度语音识别调用(voicechat.py)
- 爬取58同城二手房信息.py
- python 经典款打飞机
- 知网爬虫软件(python)
- python实现一元线性回归.py
- 海龟量化策略.py 代码
- python3环境搭建教程.ppt
- python合并多个mp4视频文件成一个mp4文
- 中山大学-自然语言处理-中文分词项目
- Python其它开发工具的安装与使用.ppt
- Computer Vision with Python 3
- ppt提取表格到xls(pdf_to_xls.py)
- python入门全套PPT
- a*算法的python版
- AWD靶机防御脚本(Linux_file_montor.py)
- python爬虫爬取微博热搜
- 二维码识别+RGB识别+色环识别+通过串
- python爬虫爬取旅游信息(附源码,c
- python爬虫爬取豆瓣电影信息
- 视觉处理(test_shape.py)
- 网页视频并合并(2heiPage.py)
- 网页遥控小车 Python web (基于RPi.GPI
- 呼吸灯(IO.py)
- python 采集360的图片地址到文本文件
- Python简单小游戏 五子棋
- python基础题库(附答案).docx(共54页
- Python RC4算法
- 微信防撤回.py
评论
共有 条评论