今天给一个小可爱同学写的爬虫;

我的环境是:
MacOs 10.13.5;
Python 2.7.10;
用到的包:
urllib2
BeautifulSoup4

先自动生成获取段子的目标url:

 url = 'http://www.qiushibaike.com/hot/page/' + str(page)

然后用urllib2直接获取html内容,用headers头伪装浏览器;

    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'headers = { 'User-Agent' : user_agent }try:request = urllib2.Request(url,headers = headers)response = urllib2.urlopen(request)content = response.read().decode('utf-8')

然后用BS4构建html的对象;
用html.parser来解析内容;
用find来找到需要查找的标签,用id和div来做区分,最后找到了页面的第一个段子的标签节点,使用get_text()去除标签部分;
注意到找到的内容是Unicode类型的,为了统一格式把它重新编码成utf-8类型,使用encode(utf-8);
然后把换行符去掉(因为直接获取到的字符串里包含很多换行符,影响阅读,所以去掉了换行符,换成统一格式比较好看);

content = response.read().decode('utf-8')
soup = BeautifulSoup(content,"html.parser")
aPage = soup.find('body').find('div', id = 'content').find('div', id = 'content-left').find('div')
print aPage.span.get_text().encode("utf-8").replace("\n","")+"\n"

然后依次访问这个页面剩下的所有段子,全部输出(也是去掉空格统一格式输出);
在页面最后一个段子的某个地方好像会有一个结果是"1",懒得找是在哪个节点下错查出来的…直接用len(s)来过滤掉这个字符串;

       for i in aPage.find_next_siblings():s=i.span.get_text().encode("utf-8")if len(s)>3:print s.replace("\n","")+"\n"

最后异常处理部分就不写了…直接pass…ho ho ho ~

最终代码:

# -*- coding:utf-8 -*-
import urllib2
from bs4 import BeautifulSoupn = 2
#每页25个段子,一共13页
print "\n"
print "正在爬取糗事百科段子,请稍候:\n"
for page in range(1,n+1):print "\n\n第"+str(page)+"条段子:\n"url = 'http://www.qiushibaike.com/hot/page/' + str(page)user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'headers = { 'User-Agent' : user_agent }try:request = urllib2.Request(url,headers = headers)response = urllib2.urlopen(request)content = response.read().decode('utf-8')soup = BeautifulSoup(content,"html.parser")aPage = soup.find('body').find('div', id = 'content').find('div', id = 'content-left').find('div')print aPage.span.get_text().encode("utf-8").replace("\n","")+"\n"for i in aPage.find_next_siblings():s=i.span.get_text().encode("utf-8")if len(s)>3:print s.replace("\n","")+"\n"except :pass

Python爬虫实现爬取糗事百科段子 (26行代码简单实现)相关推荐

  1. python爬虫经典段子_玩转python爬虫之爬取糗事百科段子

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...

  2. 【网络爬虫】爬取糗事百科段子

    1.前言 自动爬取糗事百科段子,使用Python编写. 输出文件路径需根据实际自己修改哦,默认的是输出100条段子,终止条件可以自己设置. 另糗事百科可能会改版,如有问题,欢迎留言,或者自行更改正则表 ...

  3. python爬虫,爬取糗事百科并保存到文件中

    #--*--coding:utf-8--*-- import re import urllib.request from urllib.error import URLError,HTTPError ...

  4. 网络爬虫---爬取糗事百科段子实战

    Python网络爬虫 1.知识要求 掌握python基础语法 熟悉urllib模块知识 熟悉get方法 会使用浏览器伪装技术 如果您对相关知识遗忘了,可以点上面的相关知识链接,熟悉一下. 2.爬取糗事 ...

  5. Python之爬取糗事百科段子实战

    "简说Python",选择"置顶/星标公众号" 福利干货,第一时间送达! 阅读本文大约6分钟,实战学习,老表建议你反复看,反复记,反复练. // 本文作者 王豪 ...

  6. python实现数据爬取——糗事百科爬虫项目

    python实现数据爬取--糗事百科爬虫项目 # urllib.request 请求模块 import urllib.request # re 模块使 Python 语言拥有全部的正则表达式功能. i ...

  7. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  8. Python爬虫实战之爬取糗事百科段子

    Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...

  9. Python爬虫实战一之爬取糗事百科段子

    点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...

  10. 【Python爬虫系列教程 28-100】小姐姐带你入门爬虫框架Scrapy、 使用Scrapy框架爬取糗事百科段子

    文章目录 Scrapy快速入门 安装和文档: 快速入门: 创建项目: 目录结构介绍: Scrapy框架架构 Scrapy框架介绍: Scrapy框架模块功能: Scrapy Shell 打开Scrap ...

最新文章

  1. 独家 | 探索性文本数据分析的新手教程(Amazon案例研究)
  2. Google Pixel 3 XL 将可运行 Fuchsia 系统
  3. 和plc哪个简单点_怎么看PLC梯形图
  4. 360董事长周鸿伟在新员工入职培训上的讲话
  5. git远程强制更新到本地
  6. NeurIPS 2020 | 基于“单目标域样本”的领域自适应方法
  7. HTMLCSS常见问题整理(四)
  8. 20130828 到底我能赚多少钱?
  9. vba 自动排序_Excel表格自动排序,神了!
  10. SpringBoot 集成ElasticSearch(二)分页查询
  11. python中对象的定义_全面了解python中的类,对象,方法,属性
  12. 【Https(二】】实战 openssl 配置 tomcat
  13. 斐讯K2P B1 博通TTL刷机方法
  14. VBV大小-H.264
  15. 推荐16本平面设计书籍,学平面设计必看的书不要错过哦
  16. ip地址,二进制,十进制、ip地址的组成 重点、ip分割网段
  17. 龙讯7号 国芯发布龙芯电脑引争议
  18. 培养创造性思维的20个技巧!
  19. 九枝兰专访-----深入解读程序化购买以及行业现状(初篇)
  20. hin2vec 异质信息网络表示学习 个人笔记

热门文章

  1. Ubuntu系统接入移动硬盘后打不开问题
  2. AI算法模型线上部署方法总结
  3. html怎么设置一个圆形区域,JS+HTML实现的圆形可点击区域示例【3种方法】
  4. 13个Python必备的知识,建议收藏
  5. 2007年度全世界最好的50个网站
  6. 关于在tomcat9中配置server.xml中URIEncoding=UTF-8无效的解决方法
  7. 实验室信息化管理系统LIMS手机端二维码应用
  8. DBeaver——设置字体大小
  9. 计算机数据表示实验报告,过程通道和数据采集处理实验报告.docx
  10. 二手车分析之初步数据分析