Xpath实战一:解析爬取糗事百科段子

#coding=utf-8
import requests
from lxml import etree

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

def getImg(html):
    texts = []
    html = etree.HTML(html)
    authors = html.xpath('//h2/text()')   #所有作者信息都在h2标签的文本里
    contents = html.xpath('//div[@class = "content"]//span[1]')  #span[1] 只选择第一个span标签的内容,有些第二个span标签内容是“查看全文”
    for content in contents:
        texts.append(content.xpath('string(.)'))  #过滤多个类似<br>标签,只选择文本
    votes = html.xpath('//*[@class = "stats-vote"]//i[@class = "number"]/text()')   #好笑数
    comments = html.xpath('//*[@class = "qiushi_comments"]//*[@class = "number"]/text()')  #回复数
    for x in zip(authors,texts,votes,comments):
        Enter = input()
        if Enter == 'Q' or Enter == 'q':
            return -1
        print("\n".join((s.strip() for s in 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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值