爬蟲時保持cookies一直有效的方法

2021-09-30 14:33:49 字數 1654 閱讀 6743

# -*- coding: utf-8 -*-

"""載入cookies檔案,使用requests庫爬取資料並動態更新cookies,可以使cookies不失效

"""import pickle

import time

import requests

import random

class

spider:

def__init__

(self,domain='51job.com'):

self.headers_51job=

self.s=requests.session()

self.s.headers=self.headers_51job

self.__domain = domain

self.timeout=30

self.cookies={}

defsetlogindomain

(self,domain='51job.com'):

"""設定登入網域名稱"""

self.__domain=domain

return self.__domain

defsettimeout

(self,timeout=30):

self.__timeout=timeout

return self.__timeout

defset_cookies

(self):

"""讀取cookie檔案 該檔案由另外乙個登入程式獲取"""

with open('./cookies.txt') as f:

cookies = pickle.loads(f.read())

for cookie in cookies:

self.cookies[cookie['name']]=cookie['value']

self.s.cookies.update(self.cookies)

defopen_url

(self, url,data=none):

"""頁面請求方法"""

# 請求頁面方法

maxtrytimes = 20

waite_time = random.uniform(0, 1) # 初始化等待時間

for i in range(maxtrytimes):

time.sleep(waite_time)

try:

req = self.s.post(url,data=data,headers=self.headers_51job,timeout=self.timeout)

content=req.text

if req.cookies.get_dict():

self.s.cookies.update(req.cookies)

break

except exception,e:

print e

content = ''

return content

if __name__ == '__main__':

spider=spider()

spider.set_cookies()

content=spider.open_url(url='')

print content

python多執行緒爬蟲時,主線程一直等待錯誤。

1 抓取 的 資訊時,遇到了加上守護執行緒 程式執行完主線程,唰的一下就結束了,子執行緒在 嗯,丟掉了 t.setdaemon true 設定守護執行緒把上邊那句注釋掉後,子執行緒 emmmmm 執行了,然後就一直在等待 等乙個不知道是誰的誰。然後就注釋掉下邊那段話 for q in self.ur...

eclipse安裝server時一直pending

1.常規做法 還是不行 2.原 太慢了,映象等一會就出來了 新增add,name設為 kepler repository 下面的location設為 一路next 重啟還是找不到server 3.work with那裡有個下拉框,翻一翻,release和kepler,很快就能顯示出來了,一路next...

自由職業一時爽,一直自由一直爽

自由對乙個人的意義,恐怕只有真正失去過自由的人才能真正的理解。可以說,在我第一天上班的時刻起,我就為這一天在準備著。當時我並不知道我想做什麼,只是覺得我終究要自己做點事情。剛畢業的時候,其實沒有太多的選擇,那時候什麼也不懂,最關鍵的是我還特別特別的需要錢,所以只能從乙個小菜鳥開始打怪公升級,但我職場...