転送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()