Python 爬虫得用正则进行数据解析爬取糗图图片并保存一本地

废话不多说,直接上代码吧

代码

#导入模块
import re
import requests
import os

#创建文件夹
if not os.path.exists('./qiutu'):
    os.mkdir('./qiutu')

#模仿浏览器访问
headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/57.0.2987.98 Safari/537.36'}
#网站访问地址
url='https://www.qiushibaike.com/imgrank/page/'

#多页访问
for page in range(1,3):
    new_url=url+ str(page)  #新url地址
    page_text=requests.get(url=new_url,headers=headers).text   #页面内容下载
    #正则匹配图片路径
    ex ='<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'  
    img_list=re.findall(ex,page_text,re.S)

    #图片保存
    for src in img_list:
        src='https:'+src  #图片下载路径
        img_data=requests.get(url=src,headers=headers).content  #二进制保存
        img_name=src.split('/')[-1]   #图片名字
        img_path='./qiutu/'+img_name   #图片保存路径
        with open(img_path,'wb') as f1:
            f1.write(img_data)
            print(img_name,'下载成功')

要导入的三个模块:re正则、request网格请求、os本地读写操作

安装requests 模块

打开cmd,输入:pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装后面加上-i https://pypi.tuna.tsinghua.edu.cn/simple/ 表示从清华镜像下载模块,速度会提高好多!

正则解析

<div class="thumb">
<a href="/article/121721100" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/12172/121721100/medium/DNXDX9TZ8SDU6OK2.jpg" alt="指引我有前进的方向">
</a>
</div>


ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'

#第一个.*?表示<a href="/article/121721100" target="_blank">
#第二个.*?表示pic.qiushibaike.com/system/pictures/12172/121721100/medium/DNXDX9TZ8SDU6OK2.jpg (图片路径,是要匹配的目标)
#第三个.*?表示 "指引我有前进的方向"

猜你喜欢

转载自blog.csdn.net/qq_28471389/article/details/114975406
今日推荐