栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

「竟是这样」 爬虫 !!! 爬取热图 「震惊」

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

「竟是这样」 爬虫 !!! 爬取热图 「震惊」

今天上课老师竟然要求爬取好看的图片。 噢,是你说的哦!!!

于是小卢马上开干,找到的好看的百度贴吧,嘻嘻,要知道 好看的图片贴吧可很多

明确需求:

# 利用正则表达式爬取百度贴吧中的图片

一翻操作终于得到了以下代码,并成功完成了需求

import requests
import  re
import os

#创建一个文件夹,保存所有的图片
if not os.path.exists('./img'):
    os.mkdir('./img')
# 1.指定url
url='https://tieba.baidu.com/p/6282290065?pn={}'
# 设置请求头
header= {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
for pn in range(1, 9):
    # 对应页码的url
    new_url = url.format(pn)

    page_text= requests.get(url=new_url,headers=header).text
    print(page_text)
    # 设置正则
    ex=  ''
    mg_src_list = re.findall(ex,page_text,re.S)

    for src_url in mg_src_list:
       img_data= requests.get(url=src_url,headers=header).content
       img_name = src_url.split('/')[-1]
       # print(img_name)
       imgPath = './img/' + img_name
       with open(imgPath, 'wb') as fp:
           fp.write(img_data)
           print(img_name, '下载成功!!!')

经过实践后,小卢举一反三,又想能不能看看糗事百科的呢?

于是有了下面的操作

# 利用正则表达式爬取糗事百科热图中的图片
import requests
import re
import os
from time import sleep


# 需求:爬取糗事百科中糗图板块下前三页的糗图图片

# 创建一个文件夹,保存所有的图片
if not os.path.exists('./img'):
    os.mkdir('./img')

# 1.指定url
url = 'https://www.qiushibaike.com/imgrank/page/{}/'
# 设置请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
# 设置前3页的url
for i in range(0, 3):
    new_url = url.format(i)
    # 使用通用爬虫对url对应的一整张页面进行爬取
    page_text = requests.get(url=new_url, headers=headers).text
    sleep(2)
    # 设置正则
    # 使用聚焦爬虫将页面中所有的糗图进行解析/提取
    ex = '.*?'
    img_src_list = re.findall(ex, page_text, re.S)
    print(img_src_list)
    for src in img_src_list:
        # 拼接出一个完整的图片url
        src = 'https:' + src
        # 发起图片的请求并获取响应
        img_data = requests.get(url=src, headers=headers).content
        # 设置图片名称
        img_name = src.split('/')[-1]
        # 设置图片保存地址
        imgPath = './img/'+img_name
        # 存储图片
        with open(imgPath, 'wb')as f:
            f.write(img_data)
            print(img_name, '下载成功')

(水平有限,只求实现,大佬看着乐乐吧)

 

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/280242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号