婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python爬蟲分析匯總

Python爬蟲分析匯總

熱門標簽:沈陽防封電銷電話卡 萊蕪電信外呼系統(tǒng) 地圖標注多個 銀川電話機器人電話 鶴壁手機自動外呼系統(tǒng)違法嗎 企業(yè)微信地圖標注 怎么辦理400客服電話 B52系統(tǒng)電梯外呼顯示E7 高德地圖標注收入咋樣

Python爬蟲分析

前言:

計算機行業(yè)的發(fā)展太快了,有時候幾天不學習,就被時代所拋棄了,因此對于我們程序員而言,最重要的就是要時刻緊跟業(yè)界動態(tài)變化,學習新的技術,但是很多時候我們又不知道學什么好,萬一學的新技術并不會被廣泛使用,太小眾了對學習工作也幫助不大,這時候我們就想要知道大佬們都在學什么了,跟著大佬學習走彎路的概率就小很多了。現(xiàn)在就讓我們看看C站大佬們平時都收藏了什么,大佬學什么跟著大佬的腳步就好了!

一、程序說明

通過爬取 “CSDN” 獲取全站排名靠前的博主的公開收藏夾,寫入 csv 文件中,根據(jù)所獲取數(shù)據(jù)分析領域大佬們的學習趨勢,并通過可視化的方式進行展示。

二、數(shù)據(jù)爬取

使用 requests 庫請求網(wǎng)頁信息,使用 BeautifulSoup4 json 庫解析網(wǎng)頁。

1、獲取 CSDN 作者總榜數(shù)據(jù)

首先,我們需要獲取 CSDN 中在榜的大佬,獲取他/她們的相關信息。由于數(shù)據(jù)是動態(tài)加載的 (因此使用開發(fā)者工具,在網(wǎng)絡選項卡中可以找到請求的 JSON 數(shù)據(jù):

觀察請求鏈接:

https://blog.csdn.net/phoenix/web/blog/all-rank?page=0pageSize=20
https://blog.csdn.net/phoenix/web/blog/all-rank?page=1pageSize=20
...

可以發(fā)現(xiàn)每次請求 JSON 數(shù)據(jù)時,會獲取20個數(shù)據(jù),為了獲取排名前100的大佬數(shù)據(jù),使用如下方式構造請求:

url_rank_pattern = "https://blog.csdn.net/phoenix/web/blog/all-rank?page={}pageSize=20"

for i in range(5):
    url = url_rank_pattern.format(i)
    #聲明網(wǎng)頁編碼方式
    response = requests.get(url=url, headers=headers)
    response.encoding = 'utf-8'
    response.raise_for_status()
    soup = BeautifulSoup(response.text, 'html.parser')

請求得到 Json 數(shù)據(jù)后,使用 json 模塊解析數(shù)據(jù)(當然也可以使用 re 模塊,根據(jù)自己的喜好選擇就好了),獲取用戶信息,從需求上講,這里僅需要用戶 userName,因此僅解析 userName 信息,也可以根據(jù)需求獲取其他信息:

userNames = []
information = json.loads(str(soup))
for j in information['data']['allRankListItem']:
    # 獲取id信息
    userNames.append(j['userName'])

2、獲取收藏夾列表

獲取到大佬的 userName 信息后,通過主頁來觀察收藏夾列表的請求方式,本文以自己的主頁為例(給自己推廣一波),分析方法與上一步類似,在主頁中切換到“收藏”選項卡,同樣利用開發(fā)者工具的網(wǎng)絡選項卡:

觀察請求收藏夾列表的地址:

https://blog.csdn.net/community/home-api/v1/get-favorites-created-list?page=1size=20noMore=falseblogUsername=LOVEmy134611

可以看到這里我們上一步獲取的 userName 就用上了,可以通過替換 blogUsername 的值來獲取列表中大佬的收藏夾列表,同樣當收藏夾數(shù)量大于20時,可以通過修改 page 值來獲取所有收藏夾列表:

collections = "https://blog.csdn.net/community/home-api/v1/get-favorites-created-list?page=1size=20noMore=falseblogUsername={}"
for userName in userNames:
    url = collections.format(userName)
    #聲明網(wǎng)頁編碼方式
    response = requests.get(url=url, headers=headers)
    response.encoding = 'utf-8'
    response.raise_for_status()
    soup = BeautifulSoup(response.text, 'html.parser')

請求得到 Json 數(shù)據(jù)后,使用 json 模塊解析數(shù)據(jù),獲取收藏夾信息,從需求上講,這里僅需要收藏夾 id,因此僅解析 id 信息,也可以根據(jù)需求獲取其他信息(例如可以獲取關注人數(shù)等信息,找到最受歡迎的收藏夾):

file_id_list = []
information = json.loads(str(soup))
# 獲取收藏夾總數(shù)
collection_number = information['data']['total']
# 獲取收藏夾id
for j in information['data']['list']:
    file_id_list.append(j['id'])

這里大家可能會問,現(xiàn)在 CSDN 不是有新舊兩種主頁么,請求方式能一樣么?答案是:不一樣,在瀏覽器端進行訪問時,舊版本使用了不同的請求接口,但是我們同樣可以使用新版本的請求方式來進行獲取,因此就不必區(qū)分新、舊版本的請求接口了,獲取收藏數(shù)據(jù)時情況也是一樣的。

3、獲取收藏數(shù)據(jù)

最后,單擊收藏夾展開按鈕,就可以看到收藏夾中的內(nèi)容了,然后同樣利用開發(fā)者工具的網(wǎng)絡選項卡進行分析:

觀察請求收藏夾的地址:

https://blog.csdn.net/community/home-api/v1/get-favorites-item-list?blogUsername=LOVEmy134611folderId=9406232page=1pageSize=200

可以看到剛剛獲取的用戶 userName 和收藏夾 id 就可以構造請求獲取收藏夾中的收藏信息了:

file_url = "https://blog.csdn.net/community/home-api/v1/get-favorites-item-list?blogUsername={}folderId={}page=1pageSize=200"
for file_id in file_id_list:
    url = file_url.format(userName,file_id)
    #聲明網(wǎng)頁編碼方式
    response = requests.get(url=url, headers=headers)
    response.encoding = 'utf-8'
    response.raise_for_status()
    soup = BeautifulSoup(response.text, 'html.parser')

最后用 re 模塊解析:

    user = user_dict[userName]
    user = preprocess(user)
    # 標題
    title_list  = analysis(r'"title":"(.*?)",', str(soup))
    # 鏈接
    url_list = analysis(r'"url":"(.*?)"', str(soup))
    # 作者
    nickname_list = analysis(r'"nickname":"(.*?)",', str(soup))
    # 收藏日期
    date_list = analysis(r'"dateTime":"(.*?)",', str(soup))
    for i in range(len(title_list)):
        title = preprocess(title_list[i])
        url = preprocess(url_list[i])
        nickname = preprocess(nickname_list[i])
        date = preprocess(date_list[i])

4、爬蟲程序完整代碼

import time
import requests
from bs4 import BeautifulSoup
import os
import json
import re
import csv

if not os.path.exists("col_infor.csv"):
    #創(chuàng)建存儲csv文件存儲數(shù)據(jù)
    file = open('col_infor.csv', "w", encoding="utf-8-sig",newline='')
    csv_head = csv.writer(file)
    #表頭
    header = ['userName','title','url','anthor','date']
    csv_head.writerow(header)
    file.close()

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

def preprocess(string):
    return string.replace(',',' ')

url_rank_pattern = "https://blog.csdn.net/phoenix/web/blog/all-rank?page={}pageSize=20"

userNames = []
user_dict = {}
for i in range(5):
    url = url_rank_pattern.format(i)
    #聲明網(wǎng)頁編碼方式
    response = requests.get(url=url, headers=headers)
    response.encoding = 'utf-8'
    response.raise_for_status()
    soup = BeautifulSoup(response.text, 'html.parser')
    information = json.loads(str(soup))
    for j in information['data']['allRankListItem']:
        # 獲取id信息
        userNames.append(j['userName'])
        user_dict[j['userName']] = j['nickName']

def get_col_list(page,userName):
    collections = "https://blog.csdn.net/community/home-api/v1/get-favorites-created-list?page={}size=20noMore=falseblogUsername={}"
    url = collections.format(page,userName)
    #聲明網(wǎng)頁編碼方式
    response = requests.get(url=url, headers=headers)
    response.encoding = 'utf-8'
    response.raise_for_status()
    soup = BeautifulSoup(response.text, 'html.parser')
    information = json.loads(str(soup))
    return information

def analysis(item,results):
    pattern = re.compile(item, re.I|re.M)
    result_list = pattern.findall(results)
    return result_list

def get_col(userName, file_id, col_page):
    file_url = "https://blog.csdn.net/community/home-api/v1/get-favorites-item-list?blogUsername={}folderId={}page={}pageSize=200"
    url = file_url.format(userName,file_id, col_page)
    #聲明網(wǎng)頁編碼方式
    response = requests.get(url=url, headers=headers)
    response.encoding = 'utf-8'
    response.raise_for_status()
    soup = BeautifulSoup(response.text, 'html.parser')
    user = user_dict[userName]
    user = preprocess(user)
    # 標題
    title_list  = analysis(r'"title":"(.*?)",', str(soup))
    # 鏈接
    url_list = analysis(r'"url":"(.*?)"', str(soup))
    # 作者
    nickname_list = analysis(r'"nickname":"(.*?)",', str(soup))
    # 收藏日期
    date_list = analysis(r'"dateTime":"(.*?)",', str(soup))
    for i in range(len(title_list)):
        title = preprocess(title_list[i])
        url = preprocess(url_list[i])
        nickname = preprocess(nickname_list[i])
        date = preprocess(date_list[i])
        if title and url and nickname and date:
            with open('col_infor.csv', 'a+', encoding='utf-8-sig') as f:
                f.write(user + ',' + title + ',' + url + ',' + nickname + ',' + date  + '\n')

    return information

for userName in userNames:
    page = 1
    file_id_list = []
    information = get_col_list(page, userName)
    # 獲取收藏夾總數(shù)
    collection_number = information['data']['total']
    # 獲取收藏夾id
    for j in information['data']['list']:
        file_id_list.append(j['id'])
    while collection_number > 20:
        page = page + 1
        collection_number = collection_number - 20
        information = get_col_list(page, userName)
        # 獲取收藏夾id
        for j in information['data']['list']:
            file_id_list.append(j['id'])
    collection_number = 0

    # 獲取收藏信息
    for file_id in file_id_list:
        col_page = 1
        information = get_col(userName, file_id, col_page)
        number_col = information['data']['total']
        while number_col > 200:
            col_page = col_page + 1
            number_col = number_col - 200
            get_col(userName, file_id, col_page)
    number_col = 0

5、爬取數(shù)據(jù)結(jié)果

展示部分爬取結(jié)果:

三、數(shù)據(jù)分析及可視化

最后使用 wordcloud 庫,繪制詞云展示大佬收藏。

from os import path
from PIL import Image
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud, STOPWORDS
import pandas as pd
import matplotlib.ticker as ticker
import numpy as np
import math
import re

df = pd.read_csv('col_infor.csv', encoding='utf-8-sig',usecols=['userName','title','url','anthor','date'])

place_array = df['title'].values
place_list = ','.join(place_array)
with open('text.txt','a+') as f:
    f.writelines(place_list)

###當前文件路徑
d = path.dirname(__file__)

# Read the whole text.
file = open(path.join(d, 'text.txt')).read()
##進行分詞
#停用詞
stopwords = ["的","與","和","建議","收藏","使用","了","實現(xiàn)","我","中","你","在","之"]
text_split = jieba.cut(file)  # 未去掉停用詞的分詞結(jié)果   list類型

#去掉停用詞的分詞結(jié)果  list類型
text_split_no = []
for word in text_split:
    if word not in stopwords:
        text_split_no.append(word)
#print(text_split_no)

text =' '.join(text_split_no)
#背景圖片
picture_mask = np.array(Image.open(path.join(d, "path.jpg")))
stopwords = set(STOPWORDS)
stopwords.add("said")
wc = WordCloud(  
    #設置字體,指定字體路徑
    font_path=r'C:\Windows\Fonts\simsun.ttc', 
    # font_path=r'/usr/share/fonts/wps-office/simsun.ttc', 
    background_color="white",   
    max_words=2000,   
    mask=picture_mask,  
    stopwords=stopwords)  
# 生成詞云
wc.generate(text)

# 存儲圖片
wc.to_file(path.join(d, "result.jpg"))

到此這篇關于Python爬蟲分析匯總的文章就介紹到這了,更多相關Python爬蟲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 關于python爬蟲應用urllib庫作用分析
  • python爬蟲Scrapy框架:媒體管道原理學習分析
  • python爬蟲Mitmproxy安裝使用學習筆記
  • Python爬蟲和反爬技術過程詳解
  • python爬蟲之Appium爬取手機App數(shù)據(jù)及模擬用戶手勢
  • 爬蟲Python驗證碼識別入門
  • Python爬蟲技術
  • Python爬蟲爬取商品失敗處理方法
  • Python獲取江蘇疫情實時數(shù)據(jù)及爬蟲分析
  • Python爬蟲之Scrapy環(huán)境搭建案例教程
  • Python爬蟲中urllib3與urllib的區(qū)別是什么
  • 教你如何利用python3爬蟲爬取漫畫島-非人哉漫畫

標簽:烏魯木齊 葫蘆島 湘西 安慶 三亞 銀川 呼倫貝爾 呼倫貝爾

巨人網(wǎng)絡通訊聲明:本文標題《Python爬蟲分析匯總》,本文關鍵詞  Python,爬蟲,分析,匯總,Python,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python爬蟲分析匯總》相關的同類信息!
  • 本頁收集關于Python爬蟲分析匯總的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    喷白浆一区二区| 中文字幕中文字幕一区二区| 国产精品自拍三区| 一区二区三区精密机械公司| 日韩欧美国产三级电影视频| 99久久伊人网影院| 日本网站在线观看一区二区三区 | 日韩电影在线一区二区| 欧美激情一区二区三区| 91精品一区二区三区久久久久久 | 精品国产制服丝袜高跟| 91国产成人在线| 国产成人午夜99999| 日本欧美一区二区在线观看| 亚洲伦在线观看| 亚洲三级电影网站| 亚洲人成在线播放网站岛国| 国产精品国产三级国产普通话99 | 久久99久久99| 精品亚洲porn| 日韩电影免费在线| 欧美aⅴ一区二区三区视频| 五月婷婷色综合| 婷婷成人综合网| 美腿丝袜在线亚洲一区| 久久er99精品| 国产成人av电影在线观看| 麻豆精品国产传媒mv男同 | 精品999在线播放| 91精品国产91久久综合桃花| 欧美日韩亚州综合| 色偷偷一区二区三区| 成人app在线观看| 91网页版在线| 在线亚洲人成电影网站色www| 91在线视频网址| 欧洲一区二区av| 欧美日韩大陆在线| 欧美日韩国产中文| 这里只有精品视频在线观看| 777奇米四色成人影色区| 欧美一区三区二区| 欧美videossexotv100| 久久精品日韩一区二区三区| 国产香蕉久久精品综合网| 中文幕一区二区三区久久蜜桃| 国产精品美女久久久久久久久久久| 日本一区二区动态图| 尤物在线观看一区| 日韩av一区二区三区四区| 蜜桃精品视频在线| 国产精品亚洲一区二区三区妖精| 国产99久久久国产精品免费看| 97精品电影院| 3d成人h动漫网站入口| 日韩女同互慰一区二区| 日本一区免费视频| 亚洲高清免费观看| 国产福利91精品一区二区三区| 97精品久久久午夜一区二区三区| 欧美日韩午夜精品| www国产精品av| 亚洲一级片在线观看| 国产精品自产自拍| 一本大道久久a久久精二百 | 国产成人综合亚洲91猫咪| 91香蕉视频黄| 精品福利一二区| 亚洲精品国久久99热| 国产精品影音先锋| 欧美色偷偷大香| 国产女人18毛片水真多成人如厕| 亚洲第一福利视频在线| 波多野结衣亚洲| 久久亚洲精品小早川怜子| 亚洲一区在线看| 99久久婷婷国产精品综合| 日韩午夜av一区| 亚洲成a人v欧美综合天堂下载| 国产69精品久久久久777| 欧美一区二区三区婷婷月色| 亚洲日本一区二区| 国产99久久久国产精品潘金网站| 久久只精品国产| 日韩国产欧美一区二区三区| 日本韩国一区二区三区视频| 国产精品久久久久影院亚瑟| 国产精品996| 国产调教视频一区| 极品少妇一区二区| 91精品久久久久久久99蜜桃| 亚洲欧美色图小说| 99精品热视频| 亚洲欧美日韩国产一区二区三区| 不卡欧美aaaaa| 亚洲女同女同女同女同女同69| 成人在线一区二区三区| 国产欧美中文在线| 懂色av中文一区二区三区| 久久综合狠狠综合久久综合88| 国产在线一区二区综合免费视频| 精品国产一区久久| 国产精品一品视频| 中文久久乱码一区二区| 成人三级在线视频| 中文字幕一区二区三区精华液| 91视频www| 亚洲成av人片在线观看无码| 56国语精品自产拍在线观看| 美腿丝袜亚洲综合| 欧美国产在线观看| 日本丰满少妇一区二区三区| 亚洲va韩国va欧美va精品| 91精品国产入口| 国产在线精品一区二区| 国产精品久久久久久久久果冻传媒 | 欧美福利一区二区| 久久国产精品99久久久久久老狼 | 欧美一区二区三区影视| 精品系列免费在线观看| 亚洲欧美日韩国产手机在线 | 欧美影视一区在线| 岛国精品在线播放| 国产最新精品免费| 另类专区欧美蜜桃臀第一页| 亚洲一区二区三区视频在线播放 | 欧美一级久久久| 91精品1区2区| 99久久99久久免费精品蜜臀| 久久福利视频一区二区| 日韩专区在线视频| 亚洲在线中文字幕| 一区二区不卡在线播放| 综合色中文字幕| 中文字幕高清不卡| 精品国产伦一区二区三区观看体验 | 大美女一区二区三区| 香蕉成人啪国产精品视频综合网 | 亚洲成人精品在线观看| 国产精品三级av在线播放| 日韩一区二区三区观看| 欧美性视频一区二区三区| 国产成人自拍网| 精品一区二区国语对白| 性感美女极品91精品| 亚洲精品乱码久久久久久日本蜜臀| 久久精品一二三| 日韩精品中文字幕在线不卡尤物| 欧美性猛交xxxx乱大交退制版| 97久久精品人人做人人爽50路| 粉嫩蜜臀av国产精品网站| 国产九色sp调教91| 国产精品影视在线观看| 成人黄色在线网站| 99re这里都是精品| 91黄视频在线| 欧美男人的天堂一二区| 欧美日韩激情一区二区| 欧美私模裸体表演在线观看| 6080午夜不卡| 精品卡一卡二卡三卡四在线| 久久午夜色播影院免费高清| 久久久久久**毛片大全| 国产精品久久久久久久久久免费看 | 久久精品欧美日韩| 国产亚洲自拍一区| 欧美国产一区在线| 亚洲乱码一区二区三区在线观看| 亚洲欧美一区二区三区国产精品 | 1区2区3区国产精品| 一区二区三区成人在线视频| 青青草原综合久久大伊人精品优势| 久久er精品视频| 一本久久a久久精品亚洲| 欧美美女视频在线观看| 国产女人18毛片水真多成人如厕 | 91首页免费视频| 欧美久久久久久久久中文字幕| 精品国产一区二区三区忘忧草 | 欧美成人伊人久久综合网| 国产亚洲人成网站| 亚洲一区二区3| 国产自产视频一区二区三区| 色婷婷亚洲婷婷| 精品国产亚洲在线| 亚洲综合视频网| 国产成人欧美日韩在线电影| 在线观看不卡一区| 久久午夜老司机| 性做久久久久久免费观看欧美| 国产成人免费视频 | 欧美日韩一级二级三级| 欧美激情中文字幕| 美女在线一区二区| 一本大道久久a久久综合婷婷| 精品久久一二三区| 视频一区二区三区在线| 91麻豆免费观看| 久久久美女艺术照精彩视频福利播放| 亚洲高清免费观看|