零基础Python爬虫实现(百度贴吧)
提示:本学习来自Ehco前辈的文章, 经过实现得出的笔记。
目标
http://tieba.baidu.com/f?kw=linux&ie=utf-8
网站结构

学习目标
由于是第一个实验性质爬虫,我们要做的不多,我们需要做的就是: 1. 从网上爬下特定页码的网页
2. 对于爬下的页面内容进行简单的筛选分析
3. 找到每一篇帖子的 标题、发帖人、日期、楼层、以及跳转链接
4. 将结果保存到文本。
发现规律
&pn=0 : 首页
&pn=50: 第二页
&pn=100:第三页
&pn=50*n 第n页
50 表示 每一页都有50篇帖子。
这样就能实现翻页操作
附上代码
import requests
import time from bs4 import BeautifulSoup def get_html(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status() r.encoding = 'utf-8'
return r.text
except:
return "error" def get_content(url):
comments = []
html = get_html(url) soup = BeautifulSoup(html, 'lxml')
liTags = soup.find_all('li', attrs={'class':' j_thread_list clearfix'}) for li in liTags:
comment = {}
try:
#标题
comment['title'] = li.find(
'a', attrs={'class':'j_th_tit '}).text.strip()
#链接
comment['link'] = "http://tieba.baidu.com/" + \
li.find('a', attrs={'class' : 'j_th_tit'})['href']
#发帖人
comment['name'] = li.find(
'span', attrs = {'class':'tb_icon_author '}
).text.strip()
#发帖时间
comment['time'] = li.find(
'span', attrs={'class':'pull-right is_show_create_time'}
).text.strip()
#回复数量
comment['replyNum'] = li.find(
'span', attrs={'class':'threadlist_rep_num center_text'}
).text.strip()
comments.append(comment)
except:
print("出了点小问题")
return comments def Out2File(dict):
with open('TTBT.txt', 'a+') as f:
for comment in dict:
f.write('标题: {} \t 连接: {} \t 发帖人: {} \t 发帖时间: {} \t 回复数量: {} \n'.format(
comment['title'], comment['link'], comment['name'], comment['time'], comment['replyNum']
))
print("当前页面爬取完成") def main(base_url, deep):
url_list = []
for i in range(0, deep):
url_list.append(base_url + '&pn' + str(50 * i))
print("所有的网页已经下载到本地! 开始筛选信息") for url in url_list:
content = get_content(url)
Out2File(content)
print("所有的信息都已经保存完毕") base_url = 'http://tieba.baidu.com/f?kw=linux&ie=utf-8'
deep = 3 if __name__ == '__main__':
main(base_url, deep)
结果


零基础Python爬虫实现(百度贴吧)的更多相关文章
- 零基础Python爬虫实现(爬取最新电影排行)
提示:本学习来自Ehco前辈的文章, 经过实现得出的笔记. 目标网站 http://dianying.2345.com/top/ 网站结构 要爬的部分,在ul标签下(包括li标签), 大致来说迭代li ...
- 嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的42-45讲 {字典}
#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=1021108 ...
- 嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=15873837810484552531 中的15-23讲
#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=1587383 ...
- 嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=15873837810484552531 中的1-14讲
#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=1587383 ...
- 零基础Python应该怎样学习呢?(附视频教程)
Python应该怎样学习呢? 阶段一:适合自己的学习方式 对于零基础的初学者来说,最迷茫的是不知道怎样开始学习?那这里小编建议可以采用视频+书籍的方式进行学习.看视频学习可以让你迅速掌握编程的基础语法 ...
- 如何用Python爬虫实现百度图片自动下载?
Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或 ...
- python爬虫获取百度图片(没有精华,只为娱乐)
python3.7,爬虫技术,获取百度图片资源,msg为查询内容,cnt为查询的页数,大家快点来爬起来.注:现在只能爬取到百度的小图片,以后有大图片的方法,我会陆续发贴. #!/usr/bin/env ...
- 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)
一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...
- 零基础Python接口测试教程
目录 一.Python基础 Python简介.环境搭建及包管理 Python基本语法 基本数据类型(6种) 条件/循环 文件读写(文本文件) 函数/类 模块/包 常见算法 二.接口测试快速实践 简单接 ...
随机推荐
- CentOS6.5安装Tomcat8.0
1.首先从官网下载最新的安装包 http://tomcat.apache.org/ apache-tomcat-8.0.20.tar.gz 2.上传安装包到 /usr/local/mypackage ...
- Vue开始
Vue搭建项目 搭建VUe项目之前需要先安装脚手架,不然项目搭建完会有警告. 最后稍等一定的时间,运行结果如下: 出现上述提示,是因为我们没有先安装vue-cli,接下来,我们安装vue-cli 安装 ...
- 排名前10的vue前端UI框架框架值得你掌握
参考:https://juejin.im/post/5b34faeef265da59645b188e muse-ui 框架: https://juejin.im/entry/582974eb8ac24 ...
- Mybatis时间段比较
在开始时间和结束时间内的一段时间范围的查询 <if test="timeStart != null and timeStart != ''"> and wfsj > ...
- 《linux就该这么学》找到一本不错的Linux电子书,《Linux就该这么学》。
本帖不是广告贴,只是感觉有好的工具书而已 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国 ...
- 终极解决liunx GUI 无法显示中文的问题。
为linux安装字体 Linux字体文件放在/usr/share/font/,只要将字体文件拷贝到这里就可以了.这里示例安装Windows的所有字体. 2,复制Windows下 的所有字体.cd命令切 ...
- hdu5029 树链剖分 + 线段树
将树映射在线段上进行操作 然后每个 重链变成一个连续的区间 #include <iostream> #include <cstdio> #include <strin ...
- Java基础(basis)-----异常与错误处理
1.编译型异常和运行时异常 编译时异常是指程序正确 而由外界条件不满足而产生的异常 java 中要求必须去捕捉住这类异常 不然无法通过编译 运行时异常是指程序存在着bug 如空指针异常 数 ...
- jQuery筛选--hasClass(class)和eq(index|-index)
hasClass(class) 概述 检查当前的元素是否含有某个特定的类,如果有,则返回true 参数 class 用于匹配的类名 <!DOCTYPE html> <html> ...
- Python scrapy - Login Authenication Issue
https://stackoverflow.com/questions/37841409/python-scrapy-login-authenication-issue from scrapy.cra ...