python知乎日報を取得してtxtファイルとして保存
10145 ワード
前言
手の練習に持ってきて、比較的に簡単(しかもバグがあります)、交流を歓迎します~
機能の紹介
当日の知乎日报の内容をつかみ、各ブログをtxtファイルとして保存し、フォルダの下に集中し、フォルダ名は当日时间とする.
使用するライブラリ
re,BeautifulSoup,sys,urllib2
注意事項
1.運転環境はLinux、python 2.7.x、winで直接中の命令を変えればいいと思う
2.バグは「どのように正しくツッコミを入れるか」を処理するときに1つしか手に入らない(怠け者癌が発作した)
3.コンテンツを直接取得(以下)することはできません.
だからHeadersをつければいい
4.だってahorn.私のこのウェブサイトは时々切って、だから时には间违いが现れます
4.コンテンツ分析をするときにreを直接使うことも、BeautifulSoupの関数を直接呼び出すこともできます(正規表現が苦手なので、直接bs).
show me the code
手の練習に持ってきて、比較的に簡単(しかもバグがあります)、交流を歓迎します~
機能の紹介
当日の知乎日报の内容をつかみ、各ブログをtxtファイルとして保存し、フォルダの下に集中し、フォルダ名は当日时间とする.
使用するライブラリ
re,BeautifulSoup,sys,urllib2
注意事項
1.運転環境はLinux、python 2.7.x、winで直接中の命令を変えればいいと思う
2.バグは「どのように正しくツッコミを入れるか」を処理するときに1つしか手に入らない(怠け者癌が発作した)
3.コンテンツを直接取得(以下)することはできません.
urllib2.urlop(url).read()
だからHeadersをつければいい
4.だってahorn.私のこのウェブサイトは时々切って、だから时には间违いが现れます
1 def getHtml(url):
2 header={'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1','Referer' : '******'}
3 request=urllib2.Request(url,None,header)
4 response=urllib2.urlopen(request)
5 text=response.read()
6 return text
4.コンテンツ分析をするときにreを直接使うことも、BeautifulSoupの関数を直接呼び出すこともできます(正規表現が苦手なので、直接bs).
1 def saveText(text):
2 soup=BeautifulSoup(text)
3 filename=soup.h2.get_text()+".txt"
4 fp=file(filename,'w')
5 content=soup.find('div',"content")
6 content=content.get_text()
show me the code
1 #Filename:getZhihu.py
2 import re
3 import urllib2
4 from bs4 import BeautifulSoup
5 import sys
6
7 reload(sys)
8 sys.setdefaultencoding("utf-8")
9
10 #get the html code
11 def getHtml(url):
12 header={'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1','Referer' : '******'}
13 request=urllib2.Request(url,None,header)
14 response=urllib2.urlopen(request)
15 text=response.read()
16 return text
17 #save the content in txt files
18 def saveText(text):
19 soup=BeautifulSoup(text)
20 filename=soup.h2.get_text()+".txt"
21 fp=file(filename,'w')
22 content=soup.find('div',"content")
23 content=content.get_text()
24
25 # print content #test
26 fp.write(content)
27 fp.close()
28 #get the urls from the zhihudaily.ahorn.com
29 def getUrl(url):
30 html=getHtml(url)
31 # print html
32 soup=BeautifulSoup(html)
33 urls_page=soup.find('div',"post-body")
34 # print urls_page
35
36 urls=re.findall('"((http)://.*?)"',str(urls_page))
37 return urls
38 #main() founction
39 def main():
40 page="http://zhihudaily.ahorn.me"
41 urls=getUrl(page)
42 for url in urls:
43 text=getHtml(url[0])
44 saveText(text)
45
46 if __name__=="__main__":
47 main()