python爬虫-数据解析(正则)

python爬虫-数据解析(正则)

python爬虫-数据解析(正则)

正则解析案例–爬取糗事百科的图片

糗事百科URL
https://www.qiushibaike.com/imgrank/page/2/

在这里插入图片描述
查看网页源代码,发现图片储存的地址

import requests
import re
import os


if __name__ == '__main__':
    headers = {
   
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
    }
    #判断是否存在qiushi文件夹,如果不存在就创建一个
    if not os.path.exists('./qiushi'):
        os.mkdir('./qiushi')
        
    url = 'https://www.qiushibaike.com/imgrank/page/%d/'
    for pageNum in range(1,3):
        new_url = format(url%pageNum)
		#通用爬虫请求页面数据
        gate_text = requests.get(url=new_url,headers=headers).text
        
        ex = '<div class="thumb">.*?<img src="(.*?)" alt=.*?</div>'
        #正则匹配,匹配出图片地址
        ex_data = re.findall(ex,gate_text,re.S)
        
        for src in ex_data:
        	#拼接出完整的图片URL
            src = 'https:'+src
            #请求图片二进制数据
            img_data = requests.get(url=src,headers=headers).content
            img_name = src.split('/')[-1]
            img_path = './qiushi/' + img_name
            #创建并写入图片二进制数据
            with open(img_path,'wb') as fp:
                fp.write(img_data)
                print(img_name,'success!!')

爬取结果
在这里插入图片描述
练习

https://pic.netbian.com/4kmeinv/

这里是引用

import re
import requests
import os

if __name__ == '__main__':
    if not os.path.exists('./meinv'):
        os.mkdir('./meinv')

    url = 'https://pic.netbian.com/4kmeinv/'

    headers = {
   
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
    }

    page_text = requests.get(url=url,headers=headers).text
    ex = '<li><a href=".*?target=".*?<img src="(.*?)" alt=.*?</a></li>'
    ex_data = re.findall(ex,page_text,re.S)
    for src in ex_data:
        src = 'https://pic.netbian.com/'+src
        img_data = requests.get(url=src,headers=headers).content
        img_name = src.split('/')[-1]
        img_path = './meinv/' + img_name
        with open(img_path, 'wb') as fp:
            fp.write(img_data)
            print(img_name, 'success!!')


结果
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100112.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 反射Dll注入

    反射Dll注入上一篇我们介绍了CreateRemoteThread+LoadLibrary进行注入的技巧。但是这种方法实在是太过格式化,所以几乎所有的安全软件都会监控这种方法。所以HarmanySecurity的StephenFewer提出了ReflectiveDLLInjection,也就是反射DLL注入。其和CreateRemoteThread一样也是分为两部分,注入器和注入的DLL。但是注入DLL的装载由我们自主实现,由于反射式注入方式并没有通过LoadLibrary等API来完成DLL的装载,DLL并没有

    2022年5月16日
    89
  • ubuntu 强制删除文件夹[通俗易懂]

    ubuntu 强制删除文件夹[通俗易懂]sudorm文件夹的名称-rf输入Ubuntu的密码

    2022年6月12日
    32
  • 第八章 软件项目团队管理

    第八章 软件项目团队管理本章内容提纲8.1软件项目团队管理概述8.2项目组织的规划8.3团队人员获取8.4团队建设和日常管理8.5沟通管理8.6软件专业人员的非技术素养8.1软件项目团队管理概述什么是软件项目团队?   软件项目团队是由软件项目的不同干系人所组成的,具有共同目标、紧密协作的集体。软件项目团队包括所有项目干系人:项目发起人、资助者、项目组(开发团队)、供应商、客户等。有时,软件项目团队特指项…

    2022年6月13日
    52
  • HTML的表单元�

    HTML的表单元�

    2021年12月7日
    44
  • menuconfig 配置选项详解

    menuconfig 配置选项详解转自:http://www.blog.chinaunix.net/uid-15887868-id-2758315.html在menuconfig中配置:详细介绍内核配置选项及删改情况第一部分:全部删除Codematurityleveloptions—&gt;代码成熟等级选项[]Promptfordevelopmentand/orincompletecode/drivers…

    2022年6月12日
    177
  • spssχ2检验_spss交叉表分析方法与步骤 + SPSS卡方检验结果的阅读

    spssχ2检验_spss交叉表分析方法与步骤 + SPSS卡方检验结果的阅读spss中交叉分析主要用来检验两个变量之间是否存在关系,或者说是否独立,其零假设为两个变量之间没有关系。在实际工作中,经常用交叉表来分析比例是否相等。例如分析不同的性别对不同的报纸的选择有什么不同。spss交叉表分析方法与步骤:1、在spss中打开数据,然后依次打开:analyze–descriptive–crosstabs,打开交叉表对话框2、将性别放到行列表,将对读物的选择变量放到列,这样…

    2022年5月17日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号