欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python實現登陸知乎獲得個人收藏并保存為word文件

系統 1674 0

這個程序其實很早之前就完成了,一直沒有發出了,趁著最近不是很忙就分享給大家.
使用BeautifulSoup模塊和urllib2模塊實現,然后保存成word是使用python docx模塊的,安裝方式網上一搜一大堆,我就不再贅述了.

主要實現的功能是登陸知乎,然后將個人收藏的問題和答案獲取到之后保存為word文檔,以便沒有網絡的時候可以查閱.當然,答案中如果有圖片的話也是可以獲取到的.不過這塊還是有點問題的.等以后有時間了在修改修改吧.

還有就是正則,用的簡直不要太爛…鄙視下自己…

還有,現在是問題的話所有的答案都會保存下來的.看看有時間修改成只保存第一個答案或者收藏頁問題的答案吧.要不然如果收藏的太多了的話保存下來的word會嚇你一跳的哦.O(∩_∩)O哈哈~

在登陸的時候可能會需要驗證碼,如果提示輸入驗證碼的話在程序的文件夾下面就可以看到驗證碼的圖片,照著輸入就ok了.

            
# -*- coding: utf-8 -*-
#登陸知乎抓取個人收藏 然后保存為word
import sys
reload(sys) 
sys.setdefaultencoding('utf-8')
import urllib
import urllib2
import cookielib
import string
import re
from bs4 import BeautifulSoup
from docx import Document
from docx import *
from docx.shared import Inches
from sys import exit
import os
 
#這兒是因為在公司上網的話需要使用socket代理
#import socks
#import socket
#socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1",8088)
#socket.socket =socks.socksocket
 
loginurl='http://www.zhihu.com/login'
 
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36',} 
 
postdata={
 '_xsrf': 'acab9d276ea217226d9cc94a84a231f7',
 'email': '',
 'password': '',
 'rememberme':'y'  
}
 
if not os.path.exists('myimg'):
  os.mkdir('myimg')
if os.path.exists('123.docx'):
  os.remove('123.docx')
if os.path.exists('checkcode.gif'):
  os.remove('checkcode.gif')
 
mydoc=Document()
questiontitle=''
#----------------------------------------------------------------------
def dealimg(imgcontent):
  soup=BeautifulSoup(imgcontent)
  try:
    for imglink in soup.findAll('img'):
      if imglink is not None :
        myimg= imglink.get('src')
        #print myimg
        if myimg.find('http')>=0:
          imgsrc=urllib2.urlopen(myimg).read()
          imgnamere=re.compile(r'http\S*/')
          imgname=imgnamere.sub('',myimg)
          #print imgname
          with open(u'myimg'+'/'+imgname,'wb') as code:
            code.write(imgsrc)
            mydoc.add_picture(u'myimg/'+imgname,width=Inches(1.25))
  except:
    pass
  strinfo=re.compile(r'
            
            ')
  imgcontent=strinfo.sub('',imgcontent)
  strinfo=re.compile(r'
            
            ')
  imgcontent=strinfo.sub('',imgcontent)
  #show all
  strinfo=re.compile(r'
            
              ')
  imgcontent=strinfo.sub('',imgcontent)
  imgcontent=imgcontent.replace('
              
            
            ','')
 
 
  imgcontent=imgcontent.replace('','').replace('
            

','').replace('

','').replace('

','').replace('
','') return imgcontent def enterquestionpage(pageurl): html=urllib2.urlopen(pageurl).read() soup=BeautifulSoup(html) questiontitle=soup.title.string mydoc.add_heading(questiontitle,level=3) for div in soup.findAll('div',{'class':'fixed-summary zm-editable-content clearfix'}): #print div conent=str(div).replace('

','').replace('
','') conent=conent.decode('utf-8') conent=conent.replace('
','\n') conent=dealimg(conent) ###這一塊弄得太復雜了 有時間找找看有沒有處理html的模塊 conent=conent.replace('
','').replace('
','').replace(' ','').replace(' ','').replace(' ','').replace(' ','').replace(' ','').replace('
','') mydoc.add_paragraph(conent,style='BodyText3') """file=open('222.txt','a') file.write(str(conent)) file.close()""" def entercollectpage(pageurl): html=urllib2.urlopen(pageurl).read() soup=BeautifulSoup(html) for div in soup.findAll('div',{'class':'zm-item'}): h2content=div.find('h2',{'class':'zm-item-title'}) #print h2content if h2content is not None: link=h2content.find('a') mylink=link.get('href') quectionlink='http://www.zhihu.com'+mylink enterquestionpage(quectionlink) print quectionlink def loginzhihu(): postdatastr=urllib.urlencode(postdata) ''' cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support,urllib2.HTTPHandler) urllib2.install_opener(opener) ''' h = urllib2.urlopen(loginurl) request = urllib2.Request(loginurl,postdatastr,headers) request.get_origin_req_host response = urllib2.urlopen(request) #print response.geturl() text = response.read() collecturl='http://www.zhihu.com/collections' req=urllib2.urlopen(collecturl) if str(req.geturl())=='http://www.zhihu.com/?next=%2Fcollections': print 'login fail!' return txt=req.read() soup=BeautifulSoup(txt) count=0 divs =soup.findAll('div',{'class':'zm-item'}) if divs is None: print 'login fail!' return print 'login ok!\n' for div in divs: link=div.find('a') mylink=link.get('href') collectlink='http://www.zhihu.com'+mylink entercollectpage(collectlink) print collectlink #這兒是當時做測試用的,值獲取一個收藏 #count+=1 #if count==1: # return def getcheckcode(thehtml): soup=BeautifulSoup(thehtml) div=soup.find('div',{'class':'js-captcha captcha-wrap'}) if div is not None: #print div imgsrc=div.find('img') imglink=imgsrc.get('src') if imglink is not None: imglink='http://www.zhihu.com'+imglink imgcontent=urllib2.urlopen(imglink).read() with open('checkcode.gif','wb') as code: code.write(imgcontent) return True else: return False return False if __name__=='__main__': import getpass username=raw_input('input username:') password=getpass.getpass('Enter password: ') postdata['email']=username postdata['password']=password postdatastr=urllib.urlencode(postdata) cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support,urllib2.HTTPHandler) urllib2.install_opener(opener) h = urllib2.urlopen(loginurl) request = urllib2.Request(loginurl,postdatastr,headers) response = urllib2.urlopen(request) txt = response.read() if getcheckcode(txt): checkcode=raw_input('input checkcode:') postdata['captcha']=checkcode loginzhihu() mydoc.save('123.docx') else: loginzhihu() mydoc.save('123.docx') print 'the end' raw_input()

好了,大概就是這樣,大家如果有什么好的建議或者什么的可以再下面留言,我會盡快回復的.或者在小站的關于頁面有我的聯系方式,直接聯系我就ok.


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩国产在线人成dvd | 久久精品国产欧美成人 | 欧美一级黄色网 | 天堂va在线 | aaa在线| 免费午夜视频在线观看 | 波多野吉衣一区二区三区四区 | 亚州午夜 | 国产精品久久久久影视青草 | 国产日韩欧美中文 | 欧美久草在线 | 91短视频免费观看 | 国产精品123区 | 日本特黄aa一大片 | 亚洲 偷拍 色播 | 黄色网一级片 | 亚洲一区中文字幕 | 91青青操 | 亚洲精品国产不卡在线观看 | 奇米777四色成人影视 | 美国免费黄色片 | 欧美成年网站 | 看片在线观看 | 亚洲高清成人欧美动作片 | 成人自拍在线 | 亚洲精品中文字幕乱码一区二区 | 国产91在线观看 | 古代级a毛片免费观看 | 欧区一欧区二欧区三史无前例 | 国产精品视频网站 | 在线成人av| 国产精品视频福利 | 成人av观看 | 黄色草逼视频 | 国产精品日韩欧美在线第3页 | 精品免费国产一区二区三区四区介绍 | 一区二区高清在线观看 | 一区二区免费在线观看 | 亚洲精品vr一区 | 欧美99| 成人午夜精品久久久久久久小说 |