def __init__(self, use_redis=False, debug=False, mood_begin=0, mood_num=-1, stop_time='-1', download_small_image=False, download_big_image=False, download_mood_detail=True, download_like_detail=True, download_like_names=True, recover=False, cookie_text=None, from_web=False, username='', nickname='', no_delete=True): """ init method :param use_redis: If true, use redis and json file to save data, if false, use json file only. :param debug: If true, print info in console :param mood_begin: 开始下载的动态序号,0表示从第0条动态开始下载 :param mood_num: 下载的动态数量,最好设置为20的倍数 :param stop_time: 停止下载的时间,-1表示全部数据;注意,这里是倒序,比如,stop_time="2016-01-01",表示爬取当前时间到2016年1月1日前的数据 :param recover: 是否从redis或文件中恢复数据(主要用于爬虫意外中断之后的数据恢复) :param download_small_image: 是否下载缩略图,仅供预览用的小图,该步骤比较耗时,QQ空间提供了3中不同尺寸的图片,这里下载的是最小尺寸的图片 :param download_big_image: 是否下载大图,QQ空间中保存的最大的图片,该步骤比较耗时 :param download_mood_detail:是否下载动态详情 :param download_like_detail:是否下载点赞的详情,包括点赞数量、评论数量、浏览量,该数据未被清除 :param download_like_names:是否下载点赞的详情,主要包含点赞的人员列表,该数据有很多都被清空了 """ BaseSpider.__init__(self, use_redis=use_redis, debug=debug, mood_begin=mood_begin, mood_num=mood_num, stop_time=stop_time, download_small_image=download_small_image, download_big_image=download_big_image, download_mood_detail=download_mood_detail, download_like_detail=download_like_detail, download_like_names=download_like_names, recover=recover, cookie_text=cookie_text, from_web=from_web, username=username, nickname=nickname, no_delete=no_delete) self.req = requests.Session() self.cookies = {} self.qzonetoken = "" self.g_tk = 0 self.init_file_name(self.file_name_head) self.init_parameter()
def __init__(self, use_redis=False, debug=False, mood_begin=0, mood_num=-1, stop_time='-1', download_small_image=False, download_big_image=False, download_mood_detail=True, download_like_detail=True, download_like_names=True, recover=False, cookie_text=None, from_web=False, username='', nickname='', no_delete=True, pool_flag='127.0.0.1', from_client=False, get_visit=False): """ init method :param use_redis: If true, use redis and json file to save data, if false, use json file only. :param debug: If true, print info in console :param mood_begin: 开始下载的动态序号,0表示从第0条动态开始下载 :param mood_num: 下载的动态数量,最好设置为20的倍数 :param stop_time: 停止下载的时间,-1表示全部数据;注意,这里是倒序,比如,stop_time="2016-01-01",表示爬取当前时间到2016年1月1日前的数据 :param recover: 是否从redis或文件中恢复数据(主要用于爬虫意外中断之后的数据恢复),注意,此功能在多线程中不可用 :param download_small_image: 是否下载缩略图,仅供预览用的小图,该步骤比较耗时,QQ空间提供了3中不同尺寸的图片,这里下载的是最小尺寸的图片 :param download_big_image: 是否下载大图,QQ空间中保存的最大的图片,该步骤比较耗时 :param download_mood_detail:是否下载动态详情 :param download_like_detail:是否下载点赞的详情,包括点赞数量、评论数量、浏览量,该数据未被清除 :param download_like_names:是否下载点赞的详情,主要包含点赞的人员列表,该数据有很多都被清空了 :param from_web: 表示是否来自web接口,如果为True,将该请求来自web接口,则不会读取配置文件 :param username: 在web模式中,传递过来的用户QQ号 :param nickname: 在web模式中,传递过来的用户昵称 :param no_delete: 是否在redis中缓存数据,如果为True,则不会删除,如果为False,则设置24小时的缓存时间 :param pool_flag: redis的连接池host,因为docker中host与外部不同,所以在启动程序时会自动判断是不是处于docker中 """ BaseSpider.__init__(self, use_redis=use_redis, debug=debug, mood_begin=mood_begin, mood_num=mood_num, stop_time=stop_time, download_small_image=download_small_image, download_big_image=download_big_image, download_mood_detail=download_mood_detail, download_like_detail=download_like_detail, download_like_names=download_like_names, recover=recover, cookie_text=cookie_text, from_web=from_web, username=username, nickname=nickname, no_delete=no_delete, pool_flag=pool_flag, from_client=from_client, get_visit=get_visit) self.cookies = cookiejar.CookieJar() self.req.cookies = self.cookies connection_num = 20 * SPIDER_USER_NUM_LIMIT # 设置连接池大小 self.req.mount('https://', HTTPAdapter(pool_connections=5, pool_maxsize=connection_num)) self.req.mount('http://', HTTPAdapter(pool_connections=5, pool_maxsize=connection_num)) self.qzonetoken = "" self.g_tk = 0 self.init_parameter() self.qzone_login_url = 'https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&pt_qr_app=%E6%89%8B%E6%9C%BAQQ%E7%A9%BA%E9%97%B4&pt_qr_link=https%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=https%3A//z.qzone.com/download.html&pt_no_auth=0'
def __init__(self, use_redis=False, debug=False, mood_begin=0, mood_num=-1, stop_time='-1', download_small_image=False, download_big_image=False, download_mood_detail=True, download_like_detail=True, download_like_names=True, recover=False, cookie_text=None, from_web=False, username='', nickname='', no_delete=True, pool_flag='127.0.0.1'): """ init method :param use_redis: If true, use redis and json file to save data, if false, use json file only. :param debug: If true, print info in console :param mood_begin: 开始下载的动态序号,0表示从第0条动态开始下载 :param mood_num: 下载的动态数量,最好设置为20的倍数 :param stop_time: 停止下载的时间,-1表示全部数据;注意,这里是倒序,比如,stop_time="2016-01-01",表示爬取当前时间到2016年1月1日前的数据 :param recover: 是否从redis或文件中恢复数据(主要用于爬虫意外中断之后的数据恢复),注意,此功能在多线程中不可用 :param download_small_image: 是否下载缩略图,仅供预览用的小图,该步骤比较耗时,QQ空间提供了3中不同尺寸的图片,这里下载的是最小尺寸的图片 :param download_big_image: 是否下载大图,QQ空间中保存的最大的图片,该步骤比较耗时 :param download_mood_detail:是否下载动态详情 :param download_like_detail:是否下载点赞的详情,包括点赞数量、评论数量、浏览量,该数据未被清除 :param download_like_names:是否下载点赞的详情,主要包含点赞的人员列表,该数据有很多都被清空了 :param from_web: 表示是否来自web接口,如果为True,将该请求来自web接口,则不会读取配置文件 :param username: 在web模式中,传递过来的用户QQ号 :param nickname: 在web模式中,传递过来的用户昵称 :param no_delete: 是否在redis中缓存数据,如果为True,则不会删除,如果为False,则设置24小时的缓存时间 :param pool_flag: redis的连接池host,因为docker中host与外部不同,所以在启动程序时会自动判断是不是处于docker中 """ BaseSpider.__init__(self, use_redis=use_redis, debug=debug, mood_begin=mood_begin, mood_num=mood_num, stop_time=stop_time, download_small_image=download_small_image, download_big_image=download_big_image, download_mood_detail=download_mood_detail, download_like_detail=download_like_detail, download_like_names=download_like_names, recover=recover, cookie_text=cookie_text, from_web=from_web, username=username, nickname=nickname, no_delete=no_delete, pool_flag=pool_flag) self.req = requests.Session() connection_num = 20 * SPIDER_USER_NUM_LIMIT # 设置连接池大小 self.req.mount( 'https://', HTTPAdapter(pool_connections=5, pool_maxsize=connection_num)) self.req.mount( 'http://', HTTPAdapter(pool_connections=5, pool_maxsize=connection_num)) self.cookies = {} self.qzonetoken = "" self.g_tk = 0 self.init_parameter()