python获取知乎日报另存为txt文件
2015-04-17 16:03
239 查看
前言
拿来练手的,比较简单(且有bug),欢迎交流~
功能介绍
抓取当日的知乎日报的内容,并将每篇博文另存为一个txt文件,集中放在一个文件夹下,文件夹名字为当日时间。
使用的库
re,BeautifulSoup,sys,urllib2
注意事项
1.运行环境是Linux,python2.7.x,想在win上使用直接改一下里边的命令就可以了
2.bug是在处理 “如何正确吐槽”的时候只能获取第一个(懒癌发作了)
3.直接获取(如下)内容是不可以的,知乎做了反抓取的处理
所以加个Headers就可以了
4.因为zhihudaily.ahorn.me这个网站时不时挂掉,所以有时候会出现错误
4.在做内容分析的时候可以直接使用re,也可以直接调用BeautifulSoup里的函数(我对正则表达式发怵,所以直接bs),比如
show me the code
拿来练手的,比较简单(且有bug),欢迎交流~
功能介绍
抓取当日的知乎日报的内容,并将每篇博文另存为一个txt文件,集中放在一个文件夹下,文件夹名字为当日时间。
使用的库
re,BeautifulSoup,sys,urllib2
注意事项
1.运行环境是Linux,python2.7.x,想在win上使用直接改一下里边的命令就可以了
2.bug是在处理 “如何正确吐槽”的时候只能获取第一个(懒癌发作了)
3.直接获取(如下)内容是不可以的,知乎做了反抓取的处理
urllib2.urlop(url).read()
所以加个Headers就可以了
4.因为zhihudaily.ahorn.me这个网站时不时挂掉,所以有时候会出现错误
def getHtml(url): header={'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1','Referer' : '******'} request=urllib2.Request(url,None,header) response=urllib2.urlopen(request) text=response.read() return text
4.在做内容分析的时候可以直接使用re,也可以直接调用BeautifulSoup里的函数(我对正则表达式发怵,所以直接bs),比如
def saveText(text): soup=BeautifulSoup(text) filename=soup.h2.get_text()+".txt" fp=file(filename,'w') content=soup.find('div',"content") content=content.get_text()
show me the code
#Filename:getZhihu.py import re import urllib2 from bs4 import BeautifulSoup import sys reload(sys) sys.setdefaultencoding("utf-8") #get the html code def getHtml(url): header={'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1','Referer' : '******'} request=urllib2.Request(url,None,header) response=urllib2.urlopen(request) text=response.read() return text #save the content in txt files def saveText(text): soup=BeautifulSoup(text) filename=soup.h2.get_text()+".txt" fp=file(filename,'w') content=soup.find('div',"content") content=content.get_text() # print content #test fp.write(content) fp.close() #get the urls from the zhihudaily.ahorn.com def getUrl(url): html=getHtml(url) # print html soup=BeautifulSoup(html) urls_page=soup.find('div',"post-body") # print urls_page urls=re.findall('"((http)://.*?)"',str(urls_page)) return urls #main() founction def main(): page="http://zhihudaily.ahorn.me" urls=getUrl(page) for url in urls: text=getHtml(url[0]) saveText(text) if __name__=="__main__": main()
相关文章推荐
- python获取知乎日报另存为txt文件
- <Python 2.7>爬虫获取天气历史按月份存为txt文件
- python 关于获取某一目录下的所有文件名并保存至txt文件
- python ui 获取文件目录
- Python读取指定路径所有.txt文件,将文件名写入.txt
- python获取mp3文件信息的方法
- 使用Python将TXT文本内容读取后生成指定XML格式的文件
- [Python]获取文件属性
- Python获取目录下的全部文件名,并写入文件中
- java读取txt文件,获取行数
- python-读取txt文件
- Python瞎折腾[1]-读取txt文件
- python 获取当前目录下文件
- python获取文件绝对路径解决找不到文件句柄的问题实例(readConfig.py)V1.2
- python读取txt文件中的字符串,并将其中的数字输出
- Python打开文件,将list、numpy数组内容写入txt文件中的方法
- 通过python获取苹果手机备份文件中的照片,视频等信息采集
- python逐行读写txt文件的实例讲解
- 在python中编写caffe的prototxt文件