Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Crawler|Python merangkak gambar gadis dari stesen B, motivasi untuk belajar!

Crawler|Python merangkak gambar gadis dari stesen B, motivasi untuk belajar!

Python当打之年
Python当打之年ke hadapan
2023-08-09 17:11:32977semak imbas


Dalam isu ini, saya akan memperkenalkan kepada anda cara menggunakan Python untuk merangkak gambar kanak-kanak perempuan dari stesen B Saya harap ia akan membantu anda.


1. Buka Stesen B (bilibili) dan cari '
adik perempuan
':
Crawler|Python merangkak gambar gadis dari stesen B, motivasi untuk belajar!
Terdapat sejumlah 5 halaman kandungan, Ambil halaman 2 sebagai contoh, F12 untuk membuka kod sumber halaman web:

Crawler|Python merangkak gambar gadis dari stesen B, motivasi untuk belajar!

Cari tajuk pertama, Kami boleh menemui permintaan XHR yang sepadan Selepas analisis teliti, kami mendapati semua data wujud dalam set data format json, dan sasaran kami adalah dalam senarai hasil.

Semak Tajuk seperti berikut:

Crawler|Python merangkak gambar gadis dari stesen B, motivasi untuk belajar!


Ini adalah Ini adalah permintaan entri

halaman

dan

kata kunci

dua Penyertaan sepadan dengan nombor halaman dan kata kunci yang diminta masing-masing. 🎜🎜🎜🎜🎜Semak beberapa halaman lagi untuk mencari corak: 🎜🎜🎜
# 第一页
'https://api.bilibili.com/x/web-interface/search/all/v2?context=&page=1&order=totalrank&keyword=%E5%B0%8F%E5%A7%90%E5%A7%90&duration=0&tids_2=&from_source=&from_spmid=333.337&platform=pc&__refresh__=true&_extra=&tids=0&highlight=1&single_column=0'
# 第二页
'https://api.bilibili.com/x/web-interface/search/type?context=&page=2&order=totalrank&keyword=%E5%B0%8F%E5%A7%90%E5%A7%90&duration=0&tids_2=&from_source=&from_spmid=333.337&platform=pc&__refresh__=true&_extra=&search_type=video&tids=0&highlight=1&single_column=0'
# 第三页
'https://api.bilibili.com/x/web-interface/search/type?context=&page=3&order=totalrank&keyword=%E5%B0%8F%E5%A7%90%E5%A7%90&duration=0&tids_2=&from_source=&from_spmid=333.337&platform=pc&__refresh__=true&_extra=&search_type=video&tids=0&highlight=1&single_column=0'
🎜🎜🎜🎜

Anda boleh melihat bahawa kecuali halaman 1, hanya parameter halaman yang berbeza dalam URL halaman lain, kemudian mari cubaHalaman 1 juga diminta menggunakan URL halaman lain, dan hasilnya akan menjadi sama Anda boleh mendapatkan hasil yang diingini (cuba sendiri).

Kesimpulan: Hanya parameter halaman berbeza untuk semua URL halaman, dan yang lain adalah sama.


2. 数据爬取

2.1 导入模块
# 导包
import re
import time
import json
import random
import requests
from fake_useragent import UserAgent

2.2 获取页面信息

根据分析的url请求数据:
# 获取页面信息
def get_datas(url,headers):
    r = requests.get(url, headers=headers)
    r.raise_for_status()
    r.encoding = chardet.detect(r.content)['encoding'] 
    datas = json.loads(r.text)
    return datas
2.3 获取具体图片信息
# 获取图片链接信息
def get_hrefs(datas):
    titles,hrefs = [],[]
    for data in datas['data']['result']:
        # 标题
        title = data['title']
        # 时长
        duration = data['duration']
        # 播放量
        video_review =data['video_review']
        # 发布时间
        date_rls = data['pubdate']
        pubdate = time.strftime('%Y-%m-%d %H:%M', time.localtime(date_rls))
        # 作者
        author = data['author']
        # 图片链接
        link_pic = data['pic']
        href_pic = 'https:' + link_pic
        
        titles.append(title)
        hrefs.append(href_pic)
        
        return titles, hrefs

代码解析了视频标题,时长,播放量,发布时间,作者,图片链接等参数,这里我们只取标题图片链接,其他参数可根据需要自行增,删。

2.4 保存图片
# 保存图片
def download_jpg(titles, hrefs):
    path = "D:/B站小姐姐/"
    if not os.path.exists(path):
        os.mkdir(path)
    for i in range(len(hrefs)):
        title_t = titles[i].replace('/','').replace(',','').replace('?','')
     title_t = title_t.replace(' ','').replace('|','').replace('。','')
        filename = '{}{}.jpg'.format(path,title_t)
        with open(filename, 'wb') as f:
            req = requests.get(url=hrefs[i], headers=headers)
            f.write(req.content)
            time.sleep(random.uniform(1.5,3.4))
这里我们用标题作为图片名称进行存储,需要注意文件名称不能包含特殊符号,这里过滤了” / ,。|“等4种(每天视频有增删,可能有出入,需要自己调整,也可以不使用标题做名称)。


.

Atas ialah kandungan terperinci Crawler|Python merangkak gambar gadis dari stesen B, motivasi untuk belajar!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Python当打之年. Jika ada pelanggaran, sila hubungi admin@php.cn Padam