模擬登陸和模擬發帖,思路講解和一個網站實例代碼

大家好,事隔好幾個月,終於又發帖,要說原因呢,那就是最近幾個月公司項目準備上線都比較忙,沒時間搞..

話不多說~~來點乾貨~

曾經在工作中,因爲公司的需要,做過一會模擬登陸和模擬發帖的小項目,目的就是達到不需要人手動點擊和輸入,只需要定時直接把想發的內容寫上去,加上賬號密碼就可以進行自動發帖.

這樣就可以有一個設想,可以事先建立一個賬號密碼的序列文件,格式可以隨便採用,但是要能夠自己利用代碼從文件裏面取一條一條的賬號密碼,然後就可以進行逐個發帖了,或者把再建立兩個文件,儲存需要發的文字和需要發的圖片的本地路徑,最後準備就緒,就可以開始寫代碼了.

1.首先分析一下網站登陸界面,看看發送了哪些請求,和需要哪些參數.

2.反覆登陸幾次,利用抓包軟件抓取其請求,查看有什麼區別,分析其潛在的驗證措施.

3.構建幾個基礎請求,試探能否成功發送.

4.整合代碼,構建請求類,進行正式整合代碼,把前幾個基礎類整合一起,進行發送,看是否成功,不成功再看具體問題

-------------------------------------------重點------------------------------------------------.

對第三步,有幾點問題:

1.希望各位小夥伴別用自己的賬號,多註冊幾個實驗實驗

2.發送請求的時候最好利用代理

(因爲我就在這步,封了好幾次號,和IP)

3.在第三步的時候最重要的是看密碼的加密是什麼加密方式,這個得看具體情況具體分析了,

之前搞百度的時候,那搞得可酸爽了,找資料和實驗搞了一天多,還好,最後成功了,真是感動...

4.一定一定要找對token驗證祕鑰,這東西,首先只能用一次,其次就是這個還有時效性,所以要費點時間

其他的參數吧,就有什麼搞什麼, 具體網站具體分析,就不多說了,上代碼.

-------------------------------------------代碼-------------------------------------------------------

拿來做實例的網站是一個比較普遍的大多數網站,比較小,所以驗證不是很多,就不拿大網站介紹了,百度那個我寫了一個星期左右,參數太多了,不好拿來做示例,見諒..

網站名:次元島(一個動漫cosplay網站)

class Cos():
    def __init__(self):
        self.redis_cli = redis.Redis(host="127.0.0.1", port=6379, db=14)
        self.base_url = "http://ciyuandao.com/handler/user/userlogin"
        self.Publish = 'http://ciyuandao.com/handler/share/AddShare'
        self.get_token='http://ciyuandao.com/handler/sys/GetUpToken'
        self.upload_img = "http://upload.qiniu.com/"
        self.shareTitle = raw_input("請輸入標題:")
        self.roleName = raw_input("請輸入角色名:")
        self.userCn = raw_input("請輸入作者暱稱:")
        self.content = raw_input("請輸入內容:")
        self.img_num = raw_input("需要上傳幾張圖:")
        self.s = requests.Session()
        self.formdata = {
            'account': '18826515118',
            'password': '916128333ab',
        }
        self.formPublish={
            "shareType":"2",
            # "imgs":"FukgS7JffiP5WKfcNEJUQiqwwSQN",
            "imgType":"1",
            "shareTitle":self.shareTitle,
            "roleName":self.roleName,
            "userCn":self.userCn,
            "content":self.content,
            "toWeibo":"0"
        }
        self.qiniuimg_data = {
            # "name":"456.jpg",
            "chunk":"0",
            "chunks":"1",
            # "token": "sg8pCj-x9YrZQJ3aAJL3oMLA-NvRAVhqboGkYjyu:OMbiFV764pfjRR5LZ1zCbuZFgXU=:eyJzY29wZSI6ImNvc3BsYXlsYSIsImRlYWRsaW5lIjoxNTQwNDU0MTA5LCJpbnNlcnRPbmx5IjowLCJkZXRlY3RNaW1lIjowLCJmc2l6ZUxpbWl0IjowLCJmc2l6ZU1pbiI6MCwiY2FsbGJhY2tGZXRjaEtleSI6MH0=",
            # "key":"asdasdasdsadasdasdasdasds.jpg",
        }
        self.headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    def home_message(self):
        self.s.post(self.base_url, data=self.formdata, headers=self.headers)#登陸,獲取cookie
        """
        cookie = self.s.cookies.get_dict()
        self.redis_cli.set("cookie_cos_la", cookie)
        cookie = eval(self.redis_cli.get("cookie_cos_la"))
        html = self.s.post(self.Publish,cookies = cookie,headers = self.headers).content
        """
        uptoken_obj = eval(self.s.get(self.get_token,headers = self.headers).content)#獲取七牛雲token
        uptoken = uptoken_obj["uptoken"]
        self.qiniuimg_data["token"]=uptoken
        imgname_list=[]
        for _ in range(int(self.img_num)):
            img_name = raw_input("輸入上傳的圖片名:")
            img_path = raw_input("輸入上傳路徑:")
            # self.qiniuimg_params['name'] = self.img_name+".jpg"
            # files = {'file': ("1.jpg", open("./2.jpg", "rb"), "image/jpeg")}
            files = {'file': (img_name+".jpg", open(img_path, "rb"), "image/jpeg")}
            img_onlyname = eval(self.s.post(self.upload_img,data=self.qiniuimg_data,files=files).content)
            imgname_list.append(img_onlyname["key"])
        self.formPublish["imgs"]=",".join(imgname_list)
        self.s.post(self.Publish,data=self.formPublish,headers = self.headers)#上傳文章

    def main(self):
        self.home_message()
if __name__ == '__main__':
    cos = Cos()
    cos.main()

這個代碼是我18年10-11月份的,經過我當時的實驗,是可以正常發帖,和上傳圖片的,不知道現在還能不能用,可以拿去參考參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章