Python爬虫实战(六):爬取糗事百科段子

原创 2017年09月05日 12:33:56

直接上代码:


#coding=utf-8
import requests
from bs4 import Tag
from bs4 import BeautifulSoup

def getHtml(url):  
    page = requests.get(url)  
    html = page.text  
    return html

def getImg(html):
    get_text = Tag.get_text
    soup = BeautifulSoup(html, 'html.parser')
    
    info = soup.find_all('h2')
    user = [x.get_text() for x in info]   #使用列表推导式代替list(map(get_text,info))
                    
    info = soup.find_all('span',class_="stats-vote")
    vote = [x.get_text() for x in info]   #使用列表推导式代替list(map(get_text,info))  

    info = soup.find_all('div',class_="content")
    text = [x.get_text() for x in info]   #使用列表推导式代替list(map(get_text,info))  
    
    for x in zip(user,text,vote):         #zip函数同时遍历三个列表
        Enter = input()
        if Enter == 'Q' or Enter == 'q':
            return -1
        print("\n".join([s.strip() for s in x])) #使用列表推导式代替list(map(str.strip,x))
    return 1
 
if __name__=='__main__':
    url = "https://www.qiushibaike.com/hot/"
    html,i = getHtml(url),2
    print("开始读取数据,请按回车键...按Q键退出\n")
    while (getImg(html) == 1):
        print("\n第{}页\n".format(i))
        url = ("https://www.qiushibaike.com/hot/page/%s/" % str(i))
        html,i = getHtml(url),i+1
   

缺点:无法过滤掉既有文本,又有图片的内容。


待以后优化更新。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

如何让eclipse恢复默认布局

eclipse的布局是可拖动了,有时候不小心拖动了之后,死活弄不回来。好在现在版本的eclipse都提供了一个恢复默认布局的功能: Window->Reset Perspective
  • howlaa
  • howlaa
  • 2014-09-10 10:42
  • 31359

实现将整形数字反转

实现将整数进行反转,比如:整数12345,反转后为54321                    ...
  • lwcumt
  • lwcumt
  • 2013-04-07 16:49
  • 7770

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

第14期《成长之路》2017年9月刊

1. 虚拟机与VMware-刘兵

int数组与String数组互相转换和函数互相转换

今天在群里看到一人说起面试挂的一题,题目是Int数组转成String数组。虽然是基础的问题,但却是基础中比较少用到的问题,因此大家工作都没怎么遇到,不会也很正常。在此整理一下,先来个String与In...

使用Eclipse Debug调试程序详解

1.在程序中添加一个断点 如果所示:在Eclipse中添加了一个程序断点  在Eclipse中一共有三种添加断点的方法 第一种: 在红框区域右键出现菜单后点击第一项 Togg...

★ Eclipse Debug 界面应用详解——Eclipse Debug不为人知的秘密

今天浏览csdn,发现一文详细的描述了Eclipse Debug中的各个知识点,非常详尽!特此记录。 Eclipse Debug不为人知的秘密 http://blog.csdn.net/mgoan...
  • jackpk
  • jackpk
  • 2012-06-12 13:47
  • 44976

Debug---Eclipse断点调试基础(二)

1.进入debug模式(基础知识列表) 1、设置断点  2、启动servers端的debug模式  3、运行程序,在后台遇到断点时,进入debug调试状态  =================...

MyGeneration连接MySQL数据库的实现过程

此文章主要向大家描述的是MyGeneration连接MySQL数据库的正确解决方案,我在研究了NHibernate 一段时间,我个人认为NHibernate是很适合MySQL数据库,本人对MySQL数...

笔记本电脑的维护

笔记本电脑怎么维护啊。 、笔记本的硬件日常维护 笔记本电脑日常维护之――部件篇  在外观篇里面我们讨论了笔记本电脑外观维护的问题,现在我们由表及里的看看笔记本电脑的部件怎样维护。  对于大多数普通用户...
  • nj409
  • nj409
  • 2010-07-23 21:49
  • 1115

Eclipse的Debug调试技巧

作为开发人员,掌握开发环境下的调试技巧十分有必要。我们在编写java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪里出现问题,经常需要增加日志,看变量的值,这样调试很麻烦。假设我每天花费...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)