python

requests请求方式

     get请求

          requests.get()

     post请求

        requests.post()

根据浏览器的Request Method字段来确定请求方式


requests请求参数

url

     请求网址

headers

     传递请求头部信息

data

    传递数据信息  一般用于post请求

cookies

    传递cookies信息

proxies

    传递代理信息

timeout

    设置超时

    timeout=3

response响应

    查看返回数据

response.text

    根据返回体内容自动进行二进制数据转换

response.content

    接受是二进制数据,需要手动转换

decode() 默认是utf-8格式

    查看响应状态

response.status_code

    查看请求头部信息

response.request.header

    查看响应头部信息

response.header

    查看编码格式

response.encoding


模块


json

    转换json数据为python数据类型

    json.loads(json_str)

    logging

写错误日志

    importlogging

      #创建一个logging的实例logger

        logger=logging.getLogger('Richard')

    #设定全局日志级别为DEBUG

        logger.setLevel(logging.INFO)

  #创建一个屏幕的handler,并且设定级别为DEBUG

        ch=logging.StreamHandler()

        ch.setLevel(logging.DEBUG)

#创建一个日志文件的handler,并且设定级别为DEBUG

        fh=logging.FileHandler("access.log")

        fh.setLevel(logging.INFO)

#设置日志的格式

formatter=logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

#add formatter to ch and fh

ch.setFormatter(formatter)

fh.setFormatter(formatter)

#add ch and fh to logger

logger.addHandler(ch)

logger.addHandler(fh)

#'application' code

logger.debug("debug message")

logger.info("info message")

logger.warning("warn message")

logger.error("error message")

logger.critical("crititcal message")

retrying

控制请求次数,一般应用于请求函数

fromretryingimportretry

@retry(stop_max_attempt_number=3)# 控制请求次数

defparse(self):

print(1111)

r=requests.get(self.url,headers=self.headers,proxies=self.proxies,timeout=2)

print(r.content.decode())


错误处理

try:

代码

assert判断条件


exceptExceptionase:

    print(e)# 打印异常内容

    其他操作



反爬处理

使用代理

使用random获取随机代理ip

importrandom# 产生随机数

proxies_list=[{'http':'http://47.91.19.8:8080'},{'http':'http://47.91.139.78:8080'},{'http':'http://47.91.19.78:80'},{'http':'http://147.99.139.78:8080'}]

# 第一种方式

a=proxies_list[random.randint(0,len(proxies_list)-1)]

print(a)

# 第二种方式

b=random.choice(proxies_list)

print(b)

使用随机User-Agent

和使用随机ip的方式一样

减少请求次数

sleep()

fromtimeimportsleep

sleep(3)

你可能感兴趣的:(python)