亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請求多個網站的Python類

請求多個網站的Python類

MMMHUHU 2022-11-24 15:07:08
我有一個請求函數request_url,它從不同的網站請求數據。我將此功能應用于多個不同的功能some_function_a。def some_function_a():     url = www.facebook.com     facebook = request_url(url)     facebook.apply(...)  # start to do some data wrangling     ...def some_function_b():     url = www.instagram.com     instagram = request_url(url)     instagram.apply(...)     ...def some_function_c():     url = www.linkedin.com     linkedin = request_url(url)     linkedin.apply(...)     ...我想把所有東西都打包成一個班級。不幸的是,我對 python 中的類不是很有經驗。一個類看起來如何,以便我可以執行以下操作:def some_function_a():    facebook = request_class.facebook    facebook.apply(...)    ...def some_function_b():    instagram = request_class.instagram    instagram.apply(...)def some_function_c():    linkedin = request_class.linkedin    linkedin.apply(...)    ...最優雅的方法是什么?類 request_class 是什么樣子的?
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

你可以這樣做(你還需要正確使用請求和 url 作為字符串):


class Request_class(object):

    '''

    Class with all the requests

    '''

    def __init__(self, linkedin_url):

        '''

        Constructor

        '''

        #You can pass variables to create some class properties

        #for example, if linkedin url is always the same

        self.linkedin = linkedin_url


    def facebook(self, url):

        facebook = request_url(url)

        facebook.apply(...)

        ...


    def instagram(self, url):

        instagram = request_url(url)

        instagram.apply(...)

        ...


    def linkedin(self):

        #you don't need to pass the linkedin url; it's already a class property

        linkedin = request_url(self.url)

        linkedin.apply(...)

        ...



#Then you can create an instance of the class:

my_requests = Request_class('www.linkedin.com')

#And you can call its methods:

my_requests.facebook('www.facebook.com')

my_requests.instagram('www.instagram.com')

#For this last the class already knows the url

my_requests.linkedin()


查看完整回答
反對 回復 2022-11-24
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

首先創建 RequestClass 并給它一個 url 的屬性。然后您可以為每個站點使用不同的 url 創建對象。some_function() 可以是類方法:


class RequestClass:

    def __init__(self, url):

    self.url = url


def make_request(self):

    request(self.url)


def some_function(self):

    apply(...)

要創建一個對象:


fb = RequestClass("www.facebook.com")


ig = RequestClass("www.instagram.com")


li = RequestClass("www.linkedin.com")


fb.make_request()

ig.make_request()

li.make_request()

如果你想訪問請求中的數據,你可以在你的請求方法中將它保存為 self.data 假設你向站點發出請求的方式返回數據:


class RequestClass:

    def __init__(self, url):

    self.url = url

    self.data


    def make_request(self):

        self.data = request(self.url)

要訪問數據,例如,來自 Facebook 的請求:


fb.data #returns the data from the request to facebook


process_data(fb.data) #easily use that data in a diff function

如果您在類中創建其他方法或屬性,則可以輕松地為每個站點訪問它們,例如,如果您想要打印請求中的數據:


fb.print_request_data()

ig.print_request_data()

li.print_request_data()


查看完整回答
反對 回復 2022-11-24
  • 2 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號