python获取知乎日报另存为txt文件

前言

拿来练手的,比较简单(且有bug),欢迎交流~

功能介绍

抓取当日的知乎日报的内容,并将每篇博文另存为一个txt文件,集中放在一个文件夹下,文件夹名字为当日时间。

使用的库

re,BeautifulSoup,sys,urllib2

注意事项

1.运行环境是Linux,python2.7.x,想在win上使用直接改一下里边的命令就可以了

2.bug是在处理 “如何正确吐槽”的时候只能获取第一个(懒癌发作了)

3.直接获取(如下)内容是不可以的,知乎做了反抓取的处理

urllib2.urlop(url).read()

所以加个Headers就可以了

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()
时间: 2024-10-08 15:00:33

python获取知乎日报另存为txt文件的相关文章

使用python获取webservice数据并输出到文件

上头要求设置TCP备案检查,给了个WEBSERVICE接口.查了2天,才确认还是python比较好用,我这水平也就写个脚本把数据导出,过滤检索还是用的shell.写此文备忘.WEBSERVICE接口脚本如下: #! /usr/bin/python #coding:utf-8 import codecs import suds def main(file_name, out_file): url = 'http://121.14.4.210:8088/icpautobj/ws/getIcp?wsd

python web开发-flask中读取txt文件内容

某些情况下,需要读取flask网站要目录下的txt文件.但是直接在flask网站的目录下创建一个文件是无法访问的.从网站找了一些资料,最终发现通过写一个方法返回txt内容比较简单方便,不过此方法适用于简单的文件读取以及读取量比较小的时候.详细代码如下: @app.route('/<path>')def today(path):base_dir = os.path.dirname(__file__)resp = make_response(open(os.path.join(base_dir,

python在windows内批量创建txt文件

import sys,os a = open('1.txt') n = 0 aList=[] for line in a.readlines(): #     print line.strip('\n')      aList.append(str(line.strip('\n'))) print aList for i in aList:     os.system('@echo > %s.txt'%i)

Selenium+Python参数化:读取TXT文件

概述 从Selenium模块化一文中,可以看出参数化的必要性,本文来介绍下读取外部txt文件的方法. 如何打开文件 打开文件有以下两个函数可以应用: 1.open(file_name,access_mode) file_name: 文件路径及名称: access_mode :访问方式,具体参数如下,,未提供参数,则默认为r: r:表示读取: w:表示写入: a:表示添加: +: 表示读写: b:表示2进制访问; 2.file函数 file()内建函数它的功能等于open(),如下根据文档说明可知

Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207

1.昨天文章http://www.cnblogs.com/Mr-Cxy/p/6139705.html 是获取电影网站主菜单 然后获取每个菜单下的电影url  2.今天是对电影url 进行再次解析获取下载地址 并写入文件  调用函数和类多线程还没实现 一步步来吧 3.问题:我想实现的是先对菜单进行创建文件目录 然后每个目录下以获取的电影名称.txt 作为文件 文件内是下载连接,但是创建一级菜单文件夹没问题 用OS模块就可以创建 在写入电影名称.txt时候出问题 报错 我以为是编码问题 f.open

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

Python操作小结(连接mysql、解析txt文件)

有段时间没有使用python了,对它的语法有点生疏,花了几个小时熟悉,期间发现很多小细节不清楚.为了下次能快速上手,避免重复犯错,我将python使用过程中的一些问题在这篇博文中记录小结一下,主要内容涉及到python操作mysql数据库,和解析txt文本.注:我用的是python2.7版本. 一.导入模块 python的脚本文件里面,可以导入其他脚本文件,并引用其中的方法和参数,使用关键字import.如下: import os,glob,sys 二.基础语法 1.普通变量定义 python

python 查找指定内容的txt文件

程序设计思路:1. 利用os.walk()找出所有的文件;2.利用正则找到指定后缀的文件:3.找到需要的txt文件后,通过open().readlines()读取文件中每行数据;4.读取后,保存正则匹配到数据的文件:5.你懂的. #!/usr/bin/env python #coding:utf8 import os import re regtxt = r'.+?\.txt' #扫描对象为txt文件. regcontent = r'what is your name' #列出内容含有'what

python 爬取网络小说 清洗 并下载至txt文件

什么是爬虫 网络爬虫,也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引. 网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引.网络爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引供用户搜索. 爬虫访问网站的过程会消耗目标系统资源.不少网络系统并不默许爬虫工作.因此在访问大量页面时,爬虫需要考虑到规划.负载,还需要讲“礼貌”. 不愿意被爬虫访问.被爬虫主人知晓的公开站点可以使用robots.txt文件之类的方法避免访问.这个