Python3爬虫lxml的应用之爬取斗图啦表情包

#!usr/bin/env python  
# -*- coding:utf-8 _*-
from urllib import request
from lxml import etree


class Spider:
    def __init__(self, page):
        self.page = page

    def get_html(self, url):
        headers = {
            "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"}
        req = request.Request(url, headers=headers)
        response = request.urlopen(req)
        return response.read()

    def get_image_list(self, html):
        html_obj = etree.HTML(html)  #转换为对象
        imgsrc_list = html_obj.xpath('//a/img/@data-original')
        return imgsrc_list

    def save_iamge(self, img_data):
        for img_url in img_data:
            img_bytes = self.get_html(img_url[:-4])
            with open(img_url[-14:-4], "wb") as f:
                f.write(img_bytes)

    def start(self):
        print("正在准备开始采集...")
        while True:
            html = self.get_html("http://www.doutula.com/photo/list/?page=" + str(self.page))
            iamge_list = self.get_image_list(html)
            self.save_iamge(iamge_list)
            print("***第%d页处理完毕..***" % self.page)
            command = input("按回车键继续采集下一页,quit退出")
            if command == "quit":
                break
            self.page += 1


if __name__ == '__main__':
    spider = Spider(1)
    spider.start()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值