爬虫小工具处理headers 和对requests 的封装

对requests 的封装,设置成liveTemplate,就不用每次都敲了。

import datetime

import requests


class requests_spider(object):
    def __init__(self, url, headers):
        self.url = url
        self.headers = headers

    def get_request(self, ccontent_type=None):
        """当content_type=0 时返回str类型
        content_type=1时返回的是二进制类型(图片视频,音频)
        content_type 不传时返回的字典。
        """
        try:
            response = requests.get(self.url, headers=self.headers)
            if ccontent_type == 0:
                response.encoding = response.apparent_encoding
                return response.text
            elif ccontent_type == 1:
                return response.content
            else:
                return response.json()
        except Exception as e:
            print("INFO: %s %s" % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), e))

代码处理headers

  • 方法一 利用元祖字典解包的方法(字典或元祖必须是二维的),字典有key 和value
def handle_headers(string):
    string=string.strip()
    result=dict([(line.replace(" ","")).split(":",1) for line in string.split("\n")])  # 1表示分割一次
    return result

  • 方法二 利用字典的方法设置dict.setdefault
def handle_head(header_str):
    headers = {}
    for line in header_str.split("\n"):
        if  not line: # 祛除空行
            continue
        headers.setdefault(line.split(": ")[0],line.split(": ")[1])
    return headers
发布了127 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_44224529/article/details/103791129