python获取豆瓣日记
最近迷上了看了四个春天,迷上了饭叔的豆瓣日记,想全部抓取下来,简单了写了下面的脚本
import urllib.request
import os
from bs4 import BeautifulSoup
def get_html(url):
"""通用方法,获取整个链接得html·"""
web = urllib.request.urlopen(url)
soup = BeautifulSoup(web, "html.parser")
# print(soup)
data = soup.find("div", id="content")
return data
def get_diary(data,path):
"""获取日记链接,并且存储起来"""
data = data.find_all("div",class_="note-header-container")
for link in data:
# print(link)
diary_url = link.find('div', class_="rr").find('a').get("href")
with open(path, 'a+', encoding='UTF-8') as f:
f.write(diary_url+'\n')
def get_num(url):
#获取最大页数
html_data = get_html(url)
paginator_data = html_data.find("div",class_="paginator")
page_num =[]
for link in paginator_data.find_all("a"):
page_num.append(link.get_text())
return "".join(page_num[-2:-1])
def get_diary_data(url,path):
"""获取日记内容,保存为txt文件"""
data = get_html(url)
title = data.find("h1").get_text()
file_name = path+"/"+title+".txt"
with open(file_name,'a+',encoding='UTF-8') as f:
f.write(title)
note_data = data.find("div",id="link-report")
for node_line in note_data.stripped_strings:
with open(file_name, 'a+', encoding='UTF-8') as f:
f.write(repr(node_line))
if __name__ == '__main__':
url = 'https://www.douban.com/people/luqy/notes'
path = "d://陆导"
diary_url_path = path + "/"+"diary_url.txt"
page_num = get_num(url)
for i in range(14):
url1 = url + "?start=%d&type=note"%(i*10)
get_diary(get_html(url1),diary_url_path)
f = open(diary_url_path,'r',encoding='utf-8')
for line in f.readlines():
try:
get_diary_data(line,path)
except Exception as e:
print(e)
f.close()
目前存在一个问题
1,抓取次数过多会被分IP地址
爬取结果:



python获取豆瓣日记的更多相关文章
- 爬虫实战【11】Python获取豆瓣热门电影信息
之前我们从猫眼获取过电影信息,而且利用分析ajax技术,获取过今日头条的街拍图片. 今天我们在豆瓣上获取一些热门电影的信息. 页面分析 首先,我们先来看一下豆瓣里面选电影的页面,我们默认选择热门电影, ...
- Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记
涉及关键词:requests库 requests.post方法 cookies登陆 version 1.5(附录):使用post方法登陆豆瓣,成功! 缺点:无法获得登陆成功后的cookie,要使用js ...
- python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式
一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...
- Python 豆瓣日记爬取
无聊写了个豆瓣日记的小爬虫,requests+bs4. cookies_src可填可不填,主要是为了爬取仅自己可见的日记. url填写的是日记页面,即https://www.douban.com/pe ...
- python监控tomcat日记文件
最近写了一个用python监控tomcat日记文件的功能 实现的功能: 监控日记文件中实时过来的记录,统计每分钟各个接口调用次数,统计结果插入oracle #!/usr/bin/python # -* ...
- HTTP协议与使用Python获取数据并写入MySQL
一.Http协议 二.Https协议 三.使用Python获取数据 (1)urlib (2)GET请求 (3)POST请求 四.爬取豆瓣电影实战 1.思路 (1)在浏览器中输入https://movi ...
- 使用shell/python获取hostname/fqdn释疑
一直以来被Linux的hostname和fqdn(Fully Qualified Domain Name)困惑了好久,今天专门抽时间把它们的使用细节弄清了. 一.设置hostname/fqdn 在Li ...
- python 获取日期
转载 原文:python 获取日期 作者:m4774411wang python 获取日期我们需要用到time模块,比如time.strftime方法 time.strftime('%Y-%m-% ...
- python获取字母在字母表对应位置的几种方法及性能对比较
python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...
随机推荐
- Linux fing cd 查找文件/文件夹并进入目录命令
查找文件|文件夹并进入目录命令:cd $() [root@localhost /]# cd $(dirname "`find / -name 'ifcfg-ens33'`") // ...
- centos7 yum快速安装LNMP
1.安装nginx yum install nginx ##开启nginx service nginx start 2.安装MYSQL yum localinstall http://dev.mysq ...
- 微擎后台进行GET提交
微擎form表单进行GET提交时,要传递 name 分别为 c , a , m , do 的值 例如: <form action="{php echo $this->create ...
- VS开发框架DevExtreme v19.1全解析!Windows资源管理器UX值得拥有
行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExtreme Complete Subscription v19.1中全新发布的文件管 ...
- 微信小程序data数组push和remove问题
因为在做一个小程序的demo时.由于不向后台请求数据,所以就涉及到对本地数据的操作,现在就做一些数组的增删 //添加新元素 addItemFn: function () { var { lists } ...
- Android Studio 中出现APK error
可能有很多人在用Android Studio编写程序时,时不时的会出现一个APK error的错误,反正我自从开始用Android Studio后,这个错误真的是时不时的蹦跶出来 最开始的时候,我是去 ...
- Python天天学_04_基础四
Python_day_04 金角大王: http://www.cnblogs.com/alex3714/articles/5765046.html ------Python是一个优雅的大姐姐 学习方式 ...
- 【BZOJ4456】 [Zjoi2016]旅行者 / 【UOJ #184】 【ZJOI2016】旅行者
Description 小Y来到了一个新的城市旅行.她发现了这个城市的布局是网格状的,也就是有n条从东到西的道路和m条从南到北 的道路,这些道路两两相交形成n×m个路口 (i,j)(1≤i≤n,1≤j ...
- CodeForces451E Devu and Flowers
题目链接 问题分析 没有想到母函数的做法-- 其实直接看题思路挺简单的.发现如果每种花都有无限多的话,问题变得十分简单,答案就是\(s+n-1\choose n - 1\).然后发现\(n\)只有\( ...
- [笔记]MongoDB 二(Linux下MongoDB API C++编程)
一.连接类 DBClientConnection,派生自DBClientBase.DBClientBase类是实现query, update, insert, remove等功能. 构造函数:DBCl ...