1. 程式人生 > >python 爬蟲(二) 爬蟲知乎 製作成電子書傳送到kindle

python 爬蟲(二) 爬蟲知乎 製作成電子書傳送到kindle

平時關注比較多的知乎話題,上網的狀態下看著會容易走神,所以寫了個python指令碼用來抓取自己喜歡的問題,然後推送到自己kinle看。


http://www.30daydo.com/article/7

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from bs4 import BeautifulSoup
from email.MIMEBase import MIMEBase
from email import Encoders
import smtplib
from email import Encoders,Utils
from email.Header import Header
import urllib2,urllib,time,datetime,codecs,sys,re,sys,os
reload(sys)
sys.setdefaultencoding('utf-8')

def save2file(filename,content):
	#儲存為電子書檔案
	filename=filename+".txt"
	f=open(filename,'a')
	f.write(content)
	f.close()


def getAnswer(answerID):
	host="
http://www.zhihu.com"
url=host+answerID print url user_agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" #構造header 偽裝一下 header={"User-Agent":user_agent} req=urllib2.Request(url,headers=header) resp=urllib2.urlopen(req) #這裡已經獲取了 網頁的程式碼,接下來就是提取你想要的內容。 使用beautifulSoup 來處理,很方便 bs=BeautifulSoup(resp,"html.parser") title=bs.title #獲取的標題 filename_old=title.string.strip() print filename_old filename = re.sub('[
\/:*?"<>|]','-',filename_old) #用來儲存內容的檔名,因為檔名不能有一些特殊符號,所以使用正則表示式過濾掉 save2file(filename,title.string) title_content=title.string answer= detail=bs.find("div",class_="zm-editable-content") user_ids=bs.find_all("a",class_="author-link") save2file(filename,"\n\n\n\n--------------------Detail----------------------\n\n") #獲取問題的補充內容 for i in detail.strings: save2file(filename,unicode(i)) answer=bs.find_all("div",class_="zm-editable-content clearfix") k=0 index=0 for each_answer in answer: save2file(filename,"\n\n-------------------------answer %s via -------------------------\n\n" %k) for a in each_answer.strings: #迴圈獲取每一個答案的內容,然後儲存到檔案中 save2file(filename,unicode(a)) k+=1 index=index+1 smtp_server='smtp.126.com' from_mail='
[email protected]
' password='yourpassword' to_mail='[email protected]' send_kindle=MailAtt(smtp_server,from_mail,password,to_mail) send_kindle.send_txt(filename) #呼叫傳送郵件函式,把電子書傳送到你的kindle使用者的郵箱賬號,這樣你的kindle就可以收到電子書啦 print filename class MailAtt(): def __init__(self,smtp_server,from_mail,password,to_mail): self.server=smtp_server self.username=from_mail.split("@")[0] self.from_mail=from_mail self.password=password self.to_mail=to_mail #初始化郵箱設定 def send_txt(self,filename): #這裡傳送附件尤其要注意字元編碼,當時除錯了挺久的,因為收到的檔案總是亂碼 self.smtp=smtplib.SMTP() self.smtp.connect(self.server) self.smtp.login(self.username,self.password) self.msg=MIMEMultipart() self.msg['to']=self.to_mail self.msg['from'] =self.from_mail self.msg['Subject']="Convert" self.filename=filename+ ".txt" self.msg['Date']=Utils.formatdate(localtime = 1) content=open(self.filename.decode('utf-8'),'rb').read() #print content self.att=MIMEText(content,'base64','utf-8') self.att['Content-Type']='application/octet-stream' #self.att["Content-Disposition"] = "attachment;filename=\"%s\"" %(self.filename.encode('gb2312')) self.att["Content-Disposition"] = "attachment;filename=\"%s\"" % Header(self.filename,'gb2312') #print self.att["Content-Disposition"] self.msg.attach(self.att) self.smtp.sendmail(self.msg['from'],self.msg['to'],self.msg.as_string()) self.smtp.quit()

相關推薦

python 爬蟲() 爬蟲 製作電子書傳送kindle

平時關注比較多的知乎話題,上網的狀態下看著會容易走神,所以寫了個python指令碼用來抓取自己喜歡的問題,然後推送到自己kinle看。 http://www.30daydo.com/article/7 from email.mime.text import M

python爬蟲如何爬的話題?

write targe connect 問題 brush img fetchone new text 因為要做觀點,觀點的屋子類似於知乎的話題,所以得想辦法把他給爬下來,搞了半天最終還是妥妥的搞定了,代碼是python寫的,不懂得麻煩自學哈!懂得直接看代碼,絕對可用 #c

python爬蟲——爬取上自己關注的問題

與之前爬的網站圖片的不同的是,現在爬取的是要自己個人的關注的東西,所以需要做到模擬登入。模擬登入的原理是登入網站後,在瀏覽器上獲取儲存的cookies資訊,填充之後與請求一起傳送。如果前面的爬取圖片的會爬取了,對於這個解析字串的也沒有多大問題了。一直看著知乎上很多程式設計師把

python爬蟲模擬登陸

自從暑假學了大概一個月左右的爬蟲,開學之後就沒怎麼搞爬蟲了,當時也就學到scrapy框架就放下了,大致瞭解了一下框架,不是太理解,但是在這之前本人的爬蟲水平也僅僅侷限於爬取簡單頁面,爬取動態頁面也稍微瞭解下,但是一直沒有學模擬登陸,因為當時怎麼也搞不懂模擬登陸是

Python 爬蟲-模擬登入-爬取拉勾網職位資訊

用Python寫爬蟲是很方便的,最近看了xlzd.me的文章,他的文章寫的很到位,提供了很好的思路。因為他的文章部分程式碼省略了。下面是基於他的文章的三個程式碼片段: 基於Python3,Python2的話需要修改下input輸入函式和print的用法。 爬取豆瓣電影top250 爬取拉勾網職位資訊 模擬

Python爬蟲爬取小結

最近學習了一點網路爬蟲,並實現了使用python來爬取知乎的一些功能,這裡做一個小的總結。網路爬蟲是指通過一定的規則自動的從網上抓取一些資訊的程式或指令碼。我們知道機器學習和資料探勘等都是從大量的資料出發,找到一些有價值有規律的東西,而爬蟲則可以幫助我們解決

通過Python爬蟲爬取某個問題下的圖片

該爬蟲的完整程式碼我把它放到了GitHub上,因為目前是在一點點的增加功能階段,所以程式碼可能沒有完善好,但是正常執行時沒有問題的,歡迎拍磚,:) 該爬蟲主要是通過requests來實現的,該模組完全可以很好的代替urllib和urllib2,而且功能更強大,詳細可以看這

用戶群分析--又雙叒叕一只爬蟲爬了20萬用戶

-c spider nor ember tps 數值 don thumb 分享 一直想趁著知乎還比較開放爬點數據做分析,因為懶延期至今。 爬蟲由Java實現,放在服務器上跑了三四天,可以說是龜速了,畢竟爬蟲和反爬蟲就是應該友好相處的嘛,反反爬蟲和反反反爬蟲互相傷害就沒意思了

爬蟲爬取登陸後首頁

package zhihu; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.jsoup.Connection; import org.

R語言爬蟲實戰:live課程資料爬取實戰

杜雨,EasyCharts團隊成員,R語言中文社群專欄作者,興趣方向為:Excel商務圖表,R語

python scrapy爬取問題和收藏夾下所有答案的內容和圖片

上文介紹了爬取知乎問題資訊的整個過程,這裡介紹下爬取問題下所有答案的內容和圖片,大致過程相同,部分核心程式碼不同. 爬取一個問題的所有內容流程大致如下: 一個問題url 請求url,獲取問題下的答案個數(我不需要,因為之前獲取問題資訊的時候儲存了問題的回答個數) 通過答案的介面去獲取答案(如果一次獲取5

我用Python爬了7W使用者資訊,終於爬獲了心儀小姐姐……

馬上又要到元旦了,在舉國一片“買買買”的呼聲中,單身汪的咆哮聲也愈發淒厲了。 作為一個 Python 程式設計師,要如何找到小姐姐,避開暴擊傷害,在智中取勝呢?於是就有了以下的對話: so~今天我們的目標是,爬社群的小姐姐~而且,我們又要用到新的姿勢(霧)了~scrapy

Python挖一挖上宅男們最喜歡的1000個妹子

導讀:在文章開始前,先來一張圖給大家熱熱身。這裡是宅男們最喜歡的妹子中排名前200位的頭像(實際

如何用Python+人工識別處理的倒立漢字驗證碼

  目前知乎採用了“倒立漢字”驗證碼,如圖所示: 使用者需要點選圖片中所有的倒立漢字才能登陸知乎。   這給Python爬蟲的模擬登入帶來了一定的難度,目前網路上的相關資料針對的都是普通的“英文+數字”驗證碼,針對“倒立漢字”驗證碼的文章較少。而且大家普遍採用的是requ

Python模擬登陸新版

目前網上很多模擬登入知乎的程式碼已經無法使用,即使是二、三月的程式碼也已經無法模擬登陸知乎,所以我現在將新版知乎的模擬登入程式碼和講解發布出來。 零、開發環境 開發工具:Pycharm Python版本:3.6 執行環境:Win10 一、程式碼

python requests 爬取使用者資訊

今天嘗試了爬取知乎使用者資訊來練習爬蟲,學到了很多東西,在這裡總結一下心得我沒有使用爬蟲框架,就只用了requests模組,應為爬取的都是json資料,連BeautifulSoup都沒能用上爬取知乎使用者資訊,可以不用模擬登入也能獲取使用者資訊,只有一些設定了隱私才需要登入,

人生苦短,我用Python--分分鐘下載美圖給你看

起 上次說了要爬知乎的圖片,於是花了一下午的時間去完成這件事,發現暫時接觸到的爬蟲總是逃脫不了一個規律: 模擬登陸 獲取真實網頁HTML原始碼 解析獲取到的網頁原始碼 獲取想要的資源(下載到某個資料夾或者輸出到表格中整合起來) 也許和我說的有一些出入,

Python爬蟲從入門到放棄(十四)之 Scrapy登錄

提示 mac 重要 瀏覽器 com fin 傳遞 問題 turn 原文地址https://www.cnblogs.com/zhaof/p/7406482.html 因為現在很多網站為了限制爬蟲,設置了為只有登錄才能看更多的內容,不登錄只能看到部分內容,這也是一種反爬蟲的手段

Python爬蟲從入門到放棄(十八)之 Scrapy爬取所有用戶信息(上)

user 說過 -c convert 方式 bsp 配置文件 https 爬蟲 爬取的思路 首先我們應該找到一個賬號,這個賬號被關註的人和關註的人都相對比較多的,就是下圖中金字塔頂端的人,然後通過爬取這個賬號的信息後,再爬取他關註的人和被關註的人的賬號信息,然後爬取被關註人

23個Python爬蟲開源項目代碼:爬取微信、淘寶、豆瓣、、微博等

公眾 mon 成交 個人 標簽 req 不同 數據存儲 百度雲盤 來源:全球人工智能 作者:SFLYQ 今天為大家整理了23個Python爬蟲項目。整理的原因是,爬蟲入門簡單快速,也非常適合新入門的小夥伴培養信心。所有鏈接指向GitHub,祝大家玩的