lxml库学习 - 爬取糗事百科热门段子

源码

# !/usr/bin/env python
# -*- coding:utf-8 -*-

import requests
from lxml import etree
import json


def main():
    while True:
        page=input('请输入页码: ')
        if isinstance(int(page),int):
            url='https://www.qiushibaike.com/8hr/page/{page}/'.format(page=page)
            request_header={
                'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'
            }
            resp=requests.get(url,headers=request_header)
            html=resp.text

            # 一页所有段子的xpath
            content_xpath='//div[contains(@id,"qiushi_tag")]'
            # 文字xpath
            text_xpath='./a//span[1]'
            # 图片xpath
            img_xpath='./div/a/img/@src'
            # 好笑
            vote_xpath='./div[@class="stats"]/span[1]//i/text()'
            # 评论
            comments_xpath='./div[@class="stats"]/span[2]//i/text()'

            html_et=etree.HTML(html)
            # 内容区节点
            content_et=html_et.xpath(content_xpath)

            for element in content_et:
                text=element.xpath(text_xpath)[0].text.strip()
                img=element.xpath(img_xpath)
                vote=element.xpath(vote_xpath)[0]
                comments=element.xpath(comments_xpath)[0]
                print(text)
                print(img)
                print(vote)
                print(comments)
                print()


if __name__ == '__main__':
    main()


运行结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值