parsel类库使用

简介: parsel类库使用

一、parsel类库使用

parsel这个库可以解析HTML和XML,并支持使用Xpath和CSS选择器对内容进行提取和修改,同时还融合了正则表达式的提取功能。parsel灵活且强大,同时也是python最流行的爬虫框架Scrapy的底层支持

# coding=utf-8
"""
    作者:gaojs
    功能:
    新增功能:
    日期:2022/3/25 19:35
"""
import os.path
import requests
import parsel
def get_address():
    """
    获取url地址
    :return:
    """
    dirname = 'photo/'
    if not os.path.exists(dirname):
        os.mkdir(dirname)
    for page in range(2, 11):
        print(f'=====================正在爬取第{page}页内容========================')
        url = f'http://www.netbian.com/1920x1080/index_{page}.htm'
        # url = 'http://www.netbian.com/1920x1080/'
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46'
        }
        res = requests.get(url, headers=headers)
        res.encoding = res.apparent_encoding
        selector = parsel.Selector(res.text)
        href = selector.css('.list li a::attr(href)').getall()
        # <img src="http://img.netbian.com/file/2022/0326/small003835uYAUe1648226315.jpg" alt="绿色草地 美女刘亦菲2022年4月日历桌面壁纸护眼">
        url_lis = selector.css('.list li')
        for lis in url_lis:
            title = lis.css('b::text').get()
            # 取出广告页面
            if title:
                list_url = 'http://www.netbian.com' + lis.css('a::attr(href)').get()
                # print(list_url)
                res1 = requests.get(list_url, headers=headers)
                # print(res1.text)
                selector1 = parsel.Selector(res1.text)
                img_url = selector1.css('.pic img::attr(src)').get()
                # print(img_url)
                # 保存图片
                img_content = requests.get(url=img_url).content
                with open('photo/' + title + '.jpg', 'wb') as f:
                    f.write(img_content)
                    print(title, img_url)
get_address()
相关文章
|
4月前
|
开发框架 Java Apache
Java中的类库与工具集推荐
Java中的类库与工具集推荐
|
6月前
|
安全 Java 关系型数据库
Java核心类库
Java核心类库
135 1
|
Java API Apache
好用的Java工具类库大总结,提升开发效率必备
好用的Java工具类库大总结,提升开发效率必备
1509 0
|
存储 算法 安全
Java常用类库与技巧
Java常用类库与技巧
61 0
|
XML 编解码 Java
Java工具包类库Hutool简单使用
Java工具包类库Hutool简单使用
312 0
|
C# C++
C# 创建与引用dll类库项目实战
本文目录 1. 类的访问修饰符 2. 新建类库项目 3. 编辑类代码 4. 编译并生成dll文件 5. 调用该dll
367 0
C# 创建与引用dll类库项目实战
日期处理类库
http://momentjs.cn/
944 0
|
测试技术 C# Windows
C#创建dll类库
类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它。这样一来,就节省了我们的内存空间。而想要在类库添加什么类,还需取决于类库要实现哪些功能。
976 0
|
Java Android开发
制作自己的java类库
http://blog.csdn.net/qiumengchen12/article/details/44550059 随着自己编程能力的提升以及参加项目的增多,越来越强烈地感觉到,好多曾经项目中使用过的Java类以及方法, 在正在参加的项目中也需要使用,而如果只是单纯地复制,粘贴,显然既不美观,也会出现很多问题,比如忘记方 法到底是如何实现,返回类型,传入参数等等
1898 0
|
API PHP
ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。        公共类库公共类库通常是指ThinkPHP/Library目录下面的类库,例如:            Think目录:系统核心类库            Org目录:第三方公共类库        这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。
1316 0