Pythonの爬虫類 - ほとんどの模擬着陸セレンクッキー+ requests.Sessionを得ることが知られている()+セッションアクセスのシリアライズ - ターン

転送https://www.cnblogs.com/DOLFAMINGO/p/9170429.html

1つの #のコード:UTF-8 
2  からセレンインポートwebdriverを
 3つの インポート要求
 4つの インポートSYS
 5  インポート時間
 6  から lxmlのインポートetree
 7  インポートはcPickle
 8  インポートOS
 9  #のリロード(SYS)
10  #1 sys.setdefaultencoding( 'UTF-8')
11  
12  クラスZhihu:
 13      DEF  __init__ (自己、homeurl):
 14          self.homeurl =homeurl
 15  
16      DEFの SAVE_SESSION(セルフ、セッション): 、セッションを保存するには、次が再度ログインを避けるために、直接使用することができる
17          (オープンと' session.txtを'' WB ' F AS):
 18              cPickle.dump(セッション、F)
 19              印刷 " クッキーはwritedされていている" 
20は、 
21である     DEF load_session(セルフ):     セッションロード
22は、          オープン(と' session.txt '' RB ' F AS):
 23です              S =cPickle.load(F)
 24          リターンS
 25  
26      DEF GetCookies(自己):       初次登录用セレン模拟、并获得クッキー
27          ブラウザ= webdriver.Chrome()
 28          browser.get(" https://www.zhihu.com /サインイン" 29          browser.find_element_by_xpath(" //メイン// DIV [2] / DIV [1] /フォーム/ DIV [1] / DIV [2] / DIV [1] /入力").send_keys(" 13060882373 " 30          browser.find_element_by_xpath(" //メイン// DIV [2] / DIV [1] /フォーム/ DIV [2] / DIV / DIV [1] /入力).send_keys(" XXXXXX " 31          browser.find_element_by_xpath(" //メイン// DIV [2] / DIV [1] /フォーム/ボタン" ).click()
 32          time.sleep(10 33枚の          クッキー= ブラウザ。 GET_COOKIES()
 34          browser.quit()
 35枚の         戻りクッキー
 36  
37      デフ get_session(自己):  获取セッション
38個の          S = requests.Session()
 39          なら ない os.path.exists(' session.txt '):   セッションがない場合には、1をファイルに作成され、保存された
40              s.headers.clear()
 41がある             ためにクッキー)(self.GetCookies:
 42である                  (クッキー[s.cookies.set 名前 ]、クッキー[ 】)
 43である             self.save_session(S)
 44である         セッションが既に存在する場合、それは直接使用してロードされた
45の              Sを= self.load_session()
 46である         戻りS
 47  
48      DEFのクロール(セルフ):    は、クロールを開始
49の          Sを=self.get_session()
 50          HTML = s.get(self.homeurl)の.text
 51          html_tree = etree.HTML(HTML)
 52件の          商品= html_tree.xpath(' //メイン// DIV [1] / DIV [2] / / DIV [@クラス= "のContentItem AnswerItem"] / @データ-ZOP ' 53          のためのアイテムアイテム:
 54              コンテンツ= evalの(アイテム)
 55              はauthorName =内容〔' はauthorName ' ]
 56              タイトル=内容〔' 表題' ]
 57              印刷はauthorName +" 回答:" + タイトル
 58  
59 zhihu = Zhihu(' https://www.zhihu.com/ ' 60 zhihu.Crawl()

 

おすすめ

転載: www.cnblogs.com/Young-shi/p/11518090.html