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 工作时结合官方文档做的整理。现在 Python 官方文档听说已...
    好吃的野菜阅读 217,644评论 14 232
  • 简单的控制台输出 logging.debug(‘This is debug message’) logging.i...
    henYee阅读 1,807评论 0 0
  • Python logging 模块 参考 http://blog.csdn.net/zyz511919766/ar...
    ktide阅读 960评论 0 2
  • 在现实生活中,记录日志非常重要。银行转账时会有转账记录;飞机飞行过程中,会有黑盒子(飞行数据记录器)记录飞行过程中...
    chliar阅读 826评论 1 0
  • 人生若只如初见,该多好,没有那么多的算计与猜测,没有那么多的厌恶和讨厌,只有无尽的好奇和亲切。有些人错过了就是错过...
    雨后花开茶靡_3b00阅读 642评论 0 2