亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統(tǒng) 1610 0

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

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

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

還有,現(xiàn)在是問題的話所有的答案都會保存下來的.看看有時間修改成只保存第一個答案或者收藏頁問題的答案吧.要不然如果收藏的太多了的話保存下來的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
 
#這兒是因為在公司上網(wǎng)的話需要使用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) ###這一塊弄得太復(fù)雜了 有時間找找看有沒有處理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 #這兒是當(dāng)時做測試用的,值獲取一個收藏 #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()

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 性做久久久久久免费观看 | 97午夜影院| 久久香蕉国产线看精品 | 中文字幕不卡免费视频 | 日韩精品影视 | 日本欧美成 | 九九在线精品 | 久久久久久久综合日本亚洲 | 久久青草免费91线频观看不卡 | 国产精品久热 | 久久久精品午夜免费不卡 | 欧美日韩亚洲综合 | 九九视频只有精品 | 在线视频精品一区 | 国产高清视频青青青在线 | 亚洲欧美国产毛片在线 | 国产精品久久久久久久久久久久 | 亚洲国产二区三区久久 | 国产成人精品18 | 天天干天天拍天天射天天添天天爱 | 欧美成人毛片一级在线 | 18禁片一级毛片视频播放免费看 | 最近中文字幕无免费视频 | 亚洲国产精品日韩在线观看 | 青草香蕉精品视频在线观看 | 香蕉在线观看999 | 国产精品视频网 | 国产好大好爽久久久久久久 | 操操操综合网 | 综合在线亚洲 | 114一级毛片免费 | 91成人午夜性a一级毛片 | 国产精品自在自线免费观看 | 在线观看人成网站深夜免费 | 亚洲自拍成人 | 日韩成人一级 | 99影视网 | 国产在视频线在精品 | 国产亚洲精品久久久久久久网站 | 96精品国产高清在线看入口 | 日日噜噜夜夜狠狠久久丁香 |