之前发了一篇关于文件处理小实验的文章,不知道大家有没有看呢?那篇文章真的很关键,之前我本以为没有爬取成功的原因是因为我的文件处理部分出现的问题,后来经过两个小测试之后才发现并不是我的文件处理出现了问题,而是提取url的过程中出现了问题。

不过花费一些时间之后,我终于弄懂了!

(我最后所爬取,以及代码全部在文末,大家可以自己去看)

下面,我们就来讲一下如何进行一次完整的爬虫。

在进入正题之前,首先我们需要知道进行一次爬虫,我们需要哪些东西:

一台电脑;(最好给自己配一个21存的显示器,笔记本显示器太小,写代码很伤身) 电脑里面已经配置好了python的运行环境,我建议大家使用ipython,真的,不吹牛皮,ipython比python自带的ide交互工具好用100倍! 了解一些python的基本语法;(不要以为很难,其实我的python也才开始学,自己随便买本关于python书,前8章,一字不漏地全部看完,一气呵成!千万不要拖拉,我当时看零基础入门学python的时候,天连着下了两天暴雨,哪里也去不了,女朋友爱学习,没办法,我也就窝在宿舍,这两天的时间,恰逢卢本伟开挂,蛇哥开挂,电竞圈动荡不堪,而与此相反,我的心却很静,两天看完了8章内容,之后就感觉自己升华(变傻)了·····) 4.一些基本的库,requests;bs4;正则表达式(我下一个学习目标)

首先我们先打开湖北大学的百度贴吧

这是一张网页,大家应该都明白,只要是网页,那么就有url,不要感觉url时什么高大上的东西,它其实大概就是,我们平时所说的网址。 那么上面这张图的网址(url)就是:http://tieba.baidu.com/f?kw=%E6%B9%96%E5%8C%97%E5%A4%A7%E5%AD%A6&ie=utf-8&pn=50。

湖北大学吧-百度贴吧--湖北大学校友的贴吧所在地 ​tieba.baidu.com 图标 在这里,我们要知道一点关于网页的知识,大家可以按F12,打开网页的审查元素,就可以看见如下的图:

下面的那一块,就是审查元素,用来给开发人员使用的。

我们可以将代码复制在文档里面,帮助我们分析:

也可以使用html.prettify()这个方法将自己的代码转成标准的css和html语言的格式。

很容易分析出来,每个独立的信息都保存在li这个标签中:

同理分析出,发帖标题和发帖人,回复数量,以及发帖内容,代码如下:In [1]: import requests

In [2]: from bs4 import BeaytifulSoup

In [3]: comments=[]

In [4]: r=requests.get('http://tieba.baidu.com/f?kw=%E6%B9%96%E5%8C%97%E5%A4%A7%E5%AD%A6&ie=utf-8&pn=50')

...: soup=BeautifulSoup(r.content,'lxml')

...: Tags=soup.find_all('li',attrs={"class":" j_thread_list clearfix"})

...: for li in Tags:

...: comment={}

...: a=li.find('div',attrs={"class":"threadlist_title pull_left j_th_tit "})

...: comment["title"]=a.text.strip()

...: b=li.find('span',attrs={"class":"frs-author-name-wrap"})

...: comment["author"]=b.text.strip()

...: c=li.find('div',attrs={"class":"threadlist_abs threadlist_abs_onlyline "})

...: comment["read"]=c.text.strip()

...: d=li.find('span',attrs={"class":"threadlist_rep_num center_text"})

...: comment["reply"]=d.text.strip()

...: comments.append(comment)

...: with open(r'C:\Users\13016\Desktop\6.txt','a+',encoding='utf-8') as f:

...: for word in comments:

f.write('标题:{} \t发帖人:{} \t发帖内容:{} \t帖子回复量:{} \t\n'.format(word["title"],word["author"],word["read"],word["reply"]))

这串代码的含义,我大致捋一下:

调用requests库 调用bs4库 创建一个空列表comments get到url “制作一碗美味的汤”:soup 获取这个网页的每个主体的全部信息,很明显‘li’是每个信息体的标签,将其保存在Tags中 循环得到Tags中的每个主体 创建一个空字典 循环,用find方法获取每个主体中的标题,作者,发帖内容,回复数量, a.text.strip()的意思是,将所获取的单个标签仅保存文字内容,并且用strip()方法去除其中的空格(\n)符号; 使用 with as 语句将所爬取的内容保存到本地文档中 for in 语句循环获得 coments列表中的每个元素,仔细分析,每个元素均为一个字典 结束 大致上,静态网页的爬虫就是这样做的,······码字很累,不太想写了。 大家可以评论火私聊我,来讨论!

最后给大家看一下爬取的结果,应该是这样的:

希望大家能点个赞!

全文结束,欢迎在评论区讨论~

python爬贴吧回复_(python小白必看!)python爬虫详细讲解:静态单网页的内容爬取 爬取对象:百度贴吧湖北大学吧...相关推荐

  1. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...

  2. python软件如何安装方法_【新手必看】Python软件下载及安装教程

    原标题:[新手必看]Python软件下载及安装教程 Python下载:免费开源 官网地址:https://www.python.org/downloads/ 下载对应版本Python:python-3 ...

  3. 随机存取是什么意思_手机小白必看!12GB+256GB,同样是GB,它们到底有什么不同?...

    导语 本文适合对电子产品有深度兴趣的小白,详细介绍了信息世界的数据计量单位,以及RAM与ROM的,文末给出了购机建议,建议不了解手机或者说半懂的同学观看.看完如果您觉得还可以的话,点赞关注,给小编一个 ...

  4. python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...

    欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!! 您的点赞和关注将是我持续更新的动力呢.^v^ 有不懂的问题可以私聊我哦! 前言 如图,为什么输出的不是按Jen, ...

  5. python数据分析——pyecharts柱状图全解(小白必看)

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 伯仲之间见伊吕,指挥若定失萧曹. 一 ...

  6. python编程是干嘛的-编程小白必看!Python到底能做什么?

    Python编程语言的入门门槛低,它的可读性强,代码简单易懂,尽管同样是使用C语言编写,但它又摒弃了C语言中复杂的指针,极大程度的简化Python的语法.对于初学者而言,学习Python不仅仅入门容易 ...

  7. python输入年月日输出年月日_新手学习必看的0基础入门Python与python的输入输出...

    我平常使用的编程语言主要是Fortran和Python,用于做数值计算,两种语言各具优势,Fortran更快,Python写起来更方便,更适合阅读,而且可以直接对数据进行可视化处理.但是有时候输出数据 ...

  8. 关于电脑的基础知识_改装小白必看的汽车音响改装基础知识!

    汽车作为一个越来越普及的交通工具,已经占据了人类的更大时间和空间,成了不可缺少的生活物品,而原车汽车音响作为这个驾驶工具里的唯一具有娱乐功能的零配件有时候也是在满足不了一些对音乐有高水平要求的驾驶者的 ...

  9. 微软MS08-067漏洞,小白必看,超详细!!!

    实验环境,攻击机:kali  ip:192.168.1.110             目标机:win   xp   IP:192.168.1.30 1.nmap扫描目标机445端口是否开启:nmap ...

最新文章

  1. 网络层IP路由的负载均衡实现思路
  2. 自定义控件只允许输入Decimal和int类型字符串
  3. 此模块的调试信息中缺少源信息_SpringBoot中的潜在漏洞分析
  4. 20145236《信息安全系统设计基础》第0周学习总结
  5. html导航条置顶,jquery导航菜单栏固定悬浮顶部实现效果
  6. leetcode 115. Distinct Subsequences Hard | 115. 不同的子序列(动态规划)
  7. java标记错误_标记电子邮件Java时出错
  8. 5!(简单的了解for循环与递归的区别)
  9. Python与数据库(2)Oracle
  10. access横向求和sum_数据横向、纵向及交叉求和,同事用Alt+=号一键搞定!不需要函数...
  11. pytorch梯度的自动求取
  12. 最新Mac安装/卸载pip教程
  13. 看完这篇文章,再也不怕别人问我JVM了
  14. JAVA计算机毕业设计民航售票管理系统(附源码、数据库)
  15. 【HUSTOJ】1022: 输出小写字母表
  16. Self-Supervised Gait Encoding with Locality-Aware Attention for Person Re-Identification阅读
  17. Surface Pro 4 系统优化全教程及QA
  18. 就这?阿里p6的面试竟然这么简单
  19. 汇编语言程序设计期末总结
  20. MaxEnt运行错误

热门文章

  1. 20道Java实习生笔试面试选择题(内附答案解析)
  2. jsoup实战之抓取大众点评网区域省份城市信息
  3. VScode中文输出乱码
  4. Python-高级:正则表达式3 (re模块的高级用法)
  5. 室外3D雷达地图构建流程
  6. 北漂的程序员,这寒冬你是否“有枝可依”?(附房屋安置信息)
  7. 大白话彻底搞懂HBase RowKey详细设计
  8. RK3588在SSH上启动OpenCV报错:Can‘t initialize GTK backend in function ‘cvInitSystem‘
  9. DevOps升级amp;AIOps落地,看看这些大厂都是怎么做的?
  10. 控银天下完成天使轮融资,蔡文胜、蒋涛投资