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

直接上代码:


#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
   

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


待以后优化更新。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值