前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

在我们浏览网页,浏览器会渲染输出HTML、JS、CSS等信息;通过这些元素,我们就可以看到我们想要查看的新闻,图片,电影,评论,商品等等。一般情况下我们看到自己需要的内容,图片可能会复制文字并且下载图片保存,但是如果面对大量的文字和图片,我们人工是处理不过来的,同时比如类似百度需要每天定时获取大量网站最新文章并且收录,这些大量数据与每天的定时的工作我们是无法通过人工去处理的,这时候爬虫的作用就体现出来了。

内容介绍:

话不多说,直接开始,开始我们的论坛爬虫旅程。

1、模块导入

# encoding:utf8
import requestsfrom bs4 import BeautifulSoup

导入requests网络数据请求模块,用于网络爬虫。导入BeautifulSoup尾页解析模块,用于网页数据处理。

2、获取url资源

def getHtmlList(list, url, main_url):try:soup = getHtmlText(url)managesInfo = soup.find_all('td', attrs={'class': 'td-title faceblue'})for m in range(len(managesInfo)):a = managesInfo[m].find_all('a') #获取帖子的位置for i in a:try:href = i.attrs['href']list.append(main_url + href) #把帖子的url存放在list中except:continueprint(list)except:print("获取网页失败")

获取一个url,通过requests.get()方法,获取页面的信息,这是一个获取url资源的模块。

3、获取子帖列表

def getHtmlList(list, url, main_url):try:soup = getHtmlText(url)managesInfo = soup.find_all('td', attrs={'class': 'td-title faceblue'})for m in range(len(managesInfo)):a = managesInfo[m].find_all('a') #获取帖子的位置for i in a:try:href = i.attrs['href']list.append(main_url + href) #把帖子的url存放在list中except:continueprint(list)except:print("获取网页失败")

获取一个url,调用第一个函数解析财经论坛页面,获取到其中的子帖子的url,存放在list中。这个方法得到了该链接下所有子帖的网络链接,为接下来的数据爬取做准备。子帖列表如下:

4、解析页面

def getHtmlInfo(list, fpath):for i in list:infoDict = {} #初始化存放帖子要获取的全部信息的字典authorInfo = [] #初始化存放帖子评论的作者的信息的列表comment = [] #初始化存放帖子评论的信息的列表try:soup = getHtmlText(i)if soup == "": #如果页面不存在则跳过,继续获取continueInfo = soup.find('span', attrs={'style': 'font-weight:400;'})title = Info.text # 获取帖子的标题infoDict.update({'论坛话题:  ': title}) #把帖子的标题内容存放到字典中author = soup.find_all('div', attrs={'class': 'atl-info'})for m in author:authorInfo.append(m.text) #把帖子中的评论的作者的信息存放到列表里author = soup.find_all('div', attrs={'class': 'bbs-content'})for m in author:comment.append(m.text) #把帖子的评论的信息存放在列表里for m in range(len(authorInfo)):key = authorInfo[m] + '\n'value = comment[m] + '\n'infoDict[key] = value # 把评论的作者的信息跟评论的内容以键值对的形式存储起来# 把获取到的信息存放在自己指定的位置with open(fpath, 'a', encoding='utf-8')as f:for m in infoDict:f.write(str(m) + '\n')f.write(str(infoDict[m]) + '\n')except:continue

把list中的url通过for循环一个一个解析页面,获取其中我们想要的内容,然后把得到的内容存放在指定的电脑的位置里。

5、传入参数

def main():main_url = 'http://bbs.tianya.cn'develop_url = 'http://bbs.tianya.cn/list-1109-1.shtml'#develop_url = 'http://bbs.tianya.cn/list-develop-1.shtml'ulist = []fpath = r'E:\tianya.txt'getHtmlList(ulist, develop_url, main_url)getHtmlInfo(ulist, fpath)
main() # 运行main函数

输入爬取的网页名称以及数据保存路径,本文未对爬取的数据进行进一步解析。爬取结果如下,包括主帖的内容已经跟贴的内容。

欢迎点击左上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

爬取天涯论坛数据,看看大家都在讨论什么相关推荐

  1. 用Scrapy爬虫框架爬取食品论坛数据并存入数据库

    这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...

  2. python天涯帖子_python 网络爬虫(一)爬取天涯论坛评论

    我是一个大二的学生,也是刚接触python,接触了爬虫感觉爬虫很有趣就爬了爬天涯论坛,中途碰到了很多问题,就想把这些问题分享出来, 都是些简单的问题,希望大佬们以宽容的眼光来看一个小菜鸟

  3. 频繁爬取天涯的帖子会不会被抓_web爬虫-搞一波天涯论坛帖子练练手

    今天我们将要学习如何使用BeautifulSoup库来抓取网站.BeautifulSoup是一个很好的工具,用于解析HTML代码并准确获取所需的信息.因此,无论您是从新闻网站,体育网站,还是在线商店的 ...

  4. Python3爬取京东商品数据,解决赖加载问题

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在上一次爬取今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容, ...

  5. 用java爬取学校数据_Java爬取校内论坛新帖

    Java爬取校内论坛新帖 为了保持消息灵通,博主没事会上上校内论坛看看新帖,作为爬虫爱好者,博主萌生了写个爬虫自动下载的想法. 嗯,这次就选Java. 第三方库准备 Jsoup Jsoup是一款比较好 ...

  6. Java爬取校内论坛新帖

    Java爬取校内论坛新帖 为了保持消息灵通,博主没事会上上校内论坛看看新帖,作为爬虫爱好者,博主萌生了写个爬虫自动下载的想法. 嗯,这次就选Java. 第三方库准备 Jsoup Jsoup是一款比较好 ...

  7. java爬取论坛信息_Java爬取校内论坛新帖

    Java爬取校内论坛新帖 为了保持消息灵通,博主没事会上上校内论坛看看新帖,作为爬虫爱好者,博主萌生了写个爬虫自动下载的想法. 嗯,这次就选Java. 第三方库准备 Jsoup Jsoup是一款比较好 ...

  8. Python 爬取北京二手房数据,分析北漂族买得起房吗?(附完整源码)

    来源:CSDN 本文约3500字,建议阅读9分钟. 本文根据Python爬取了赶集网北京二手房数据,R对爬取的二手房房价做线性回归分析,适合刚刚接触Python&R的同学们学习参考. 房价高是 ...

  9. 对爬虫爬取到的数据进行存储

    已写章节 第一章 网络爬虫入门 第二章 基本库的使用 第三章 解析库的使用 第四章 数据存储 第五章 动态网页的抓取 文章目录 已写章节 第四章 数据存储 4.1 文件存储 4.1.1 TXT文件存储 ...

最新文章

  1. android 广告效果图,android 仿首页广告轮播效果
  2. 英特尔CEO:微软Windows 7是PC更新的催化剂
  3. iredmail 邮件服务器搭建
  4. 用Qt 4.4编写drcom的GUI (转)
  5. 工程项目如何实现采购效益最大化?
  6. 小团队 vs 大团队
  7. PHP的echo和print小谈
  8. 分布式主流配置中心介绍:Apollo/Nacos/Spring Cloud Config/Disconf等
  9. Linux打开txt文件乱码的解决方法
  10. linux xp镜像文件,让Windows XP镜像文件小一点儿(转)
  11. UVALive 4329 Ping pong
  12. ActiveMQ RabbitMQ KafKa对比
  13. Android系统(204)---ContentProvider
  14. 74HC AHCT LS LV ABT区别
  15. dell 2u服务器型号,IBM、HP、Dell比拼主流2U双路服务器
  16. html5 随机抽奖,jQuery+H5按空格键随机抽奖代码
  17. c语言单片机编程 实例教程,51单片机的C语言编程基础及实例教程
  18. 注意:这些跳槽理由会被HR调查!
  19. 中秋福利!三维重建/SLAM/点云/相机标定/深度估计/缺陷检测课程
  20. google的开源工程,真多

热门文章

  1. python读取图片路径_Python小列子-读取照片位置
  2. 互联网公司的组织结构与产品经理岗位职责是什么?
  3. 元数据治理平台Datahub学习交流群成立!
  4. 江苏电信宽带移机怎么办理
  5. 百度AI应用方案:健康饮食APP
  6. 微信小程序保存图片到相册步骤
  7. 苹果有意离开,全球最大手机品牌却下大单,中国制造优势凸显
  8. zxmh.net 的漫画下载
  9. 技术干货 | Libra 技术解读,详解Libra共识协议!
  10. pygame系列教程——1.2加载及显示图片