Crawler|Python crawlt Bilder von Mädchen aus Station B, Motivation zum Lernen!

Freigeben: 2023-08-09 17:11:32
nach vorne
986 Leute haben es durchsucht


In dieser Ausgabe werde ich Ihnen vorstellen, wie Sie die Bilder der Damen von Station B mit Python crawlen können Ich hoffe, es wird Ihnen hilfreich sein. 1. Webanalyse


Station B (bilibili) und suchen Sie nach „
kleine Schwester
“.
':
Crawler|Python crawlt Bilder von Mädchen aus Station B, Motivation zum Lernen!
Es gibt insgesamt 5 Seiten mit Inhalt, Nehmen Sie Seite 2 als Beispiel, F12, um den Quellcode der Webseite zu öffnen:

Crawler|Python crawlt Bilder von Mädchen aus Station B, Motivation zum Lernen!

Suchen Sie nach dem ersten Titel. Nach sorgfältiger Analyse finden wir, dass alle Daten in einem Datensatz im JSON-Format vorliegen und unser Ziel in der Ergebnisliste ist.

Überprüfen Sie die Kopfzeilen wie folgt:

Crawler|Python crawlt Bilder von Mädchen aus Station B, Motivation zum Lernen!


Dies ist eine Get-Anfrage, und die Anzahl der Einträge in der Anfrage beträgt. Seite und SchlüsselwortZwei Einträge entsprechen den angeforderten Seitenzahlen bzw. Schlüsselwörtern.

Schauen Sie sich noch ein paar Seiten an, um das Muster zu finden:

# 第一页
'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'
Nach dem Login kopieren


Sie können sehen, dass mit Ausnahme von Seite 1 nur die Seitenparameter in den URLs anderer Seiten unterschiedlich sind gleich sein Sie können die gewünschten Ergebnisse erzielen (versuchen Sie es selbst).

Fazit:

Nur der Seitenparameter ist für alle Seiten-URLs unterschiedlich, die anderen sind gleich.

2. 数据爬取

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

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
Nach dem Login kopieren
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
Nach dem Login kopieren

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

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))
Nach dem Login kopieren
这里我们用标题作为图片名称进行存储,需要注意文件名称不能包含特殊符号,这里过滤了” / ,。|“等4种(每天视频有增删,可能有出入,需要自己调整,也可以不使用标题做名称)。


3. Ergebnisse

Einige Bilder:

Crawler|Python crawlt Bilder von Mädchen aus Station B, Motivation zum Lernen!


Das obige ist der detaillierte Inhalt vonCrawler|Python crawlt Bilder von Mädchen aus Station B, Motivation zum Lernen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Python当打之年
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!