简陋的Python爬虫程序

写这个仅仅是为了记录一下自己的小小成就,代码有很多不足,但仅仅是业余写写玩而已,如果你喜欢的话,给博主点个赞,再走吧。

效果图:

在这里插入图片描述

代码截图:

在这里插入图片描述

代码


import requests
from lxml import etree
import re,os



def getHTMLText (url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()  #如果状态不是200,引发HTTPError异常
        r.encoding = r.apparent_encoding #将apparent_encoding替代encoding,使返回解码的格式是正常的
        return r.text
    except:
        return "产生异常"

def getXpath(html):
    try:
        text = etree.HTML(html)
        src = text.xpath('//ul[@class="d1 ico3"]/li/a/img/@src')
        alt = text.xpath('//ul[@class="d1 ico3"]/li/a/img/@alt')
        href = text.xpath('//ul[@class="d1 ico3"]/li/a/@href')
        return zip(src,alt,href)
    except:
        return "处理出现错误!"

if __name__ == "__main__":
    url = "https://www.tupianzj.com/meinv/mm/pxmnt/"
    text = getHTMLText(url)
    zip = getXpath(text)
    for zip in zip:
        urls = "https://www.tupianzj.com" + zip[2]
        html = getHTMLText(urls)
        text = etree.HTML(html)
        number = text.xpath('//div[@class="pages"]//li/a')
        for i in number:
            it = re.findall(r"\d+", str(i.text))
            number = int(it[0])                         # 获取每一个网页图集照片的数量
            it = re.findall(r"\d+", str(i.text))        #
            for i in range(2,number):
                test = re.findall(r"(.*?).ht", urls)[0] + "_" + str(i) + ".html"       # 重新编辑成可以解析的网页地址
                text = etree.HTML(getHTMLText(test))        # 获取到下载图片的源代码
                pngurl = text.xpath('//img[@id="bigpicimg"]/@src')
                title = zip[1] + str(i)
                path = "D:\\test\\" + title + ".jpg"
                for ite in pngurl:
                    with open(path, "wb") as f:
                        req = requests.get(ite)
                        f.write(req.content)
            break





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值