import argparse #用于命令项选项与参数解析
import os #整理文件和目录
import re #正则表达式 进行文字匹配
import sys #argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。
import urllib
import json
import socket
import urllib.request #制定url,获取网页数据
import urllib.parse #将url解析为组件
import urllib.error #可以捕获由 urllib.request 产生的异常。
import time # 设置超时
timeout = 5
socket.setdefaulttimeout(timeout) #防止爬虫爬取某个页面时间过长,导致程序卡置不前
class Crawler:
__time_sleep = 0.1 # 睡眠时长
__amount = 0
__start_amount = 0
__counter = 0
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0', 'Cookie': ''}
#模拟浏览器头部信息,向服务器发送消息
__per_page = 30
# 获取图片url内容等
# t 下载图片时间间隔
def __init__(self, t=0.1):
self.time_sleep = t
@staticmethod
def get_suffix(name):
m = re.search(r'\.[^\.]*$', name)
if m.group(0) and len(m.group(0)) <= 5:
return m.group(0)
else:
return '.jpeg'
# 获取后缀名
@staticmethod
def handle_baidu_cookie(original_cookie, cookies):
"""
:param string original_cookie:
:param list cookies:
:return string:
"""
if not cookies:
return original_cookie
result = original_cookie
for cookie in cookies: