Heim > Backend-Entwicklung > Python-Tutorial > Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)

Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)

Freigeben: 2023-08-10 15:53:10
nach vorne
1053 Leute haben es durchsucht

Bei dieser Ausgabe handelt es sich um eine Artikelserie Der Teil des Zeitdiagramms wird im nächsten Teil von


vorgestellt. Ich hoffe, er wird Ihnen hilfreich sein.

涉及到的内容:
pandas — 数据处理
schedule — 定时任务
json – Datenformat

read_html – Web-Formularverarbeitung


1. Vorbereitung
2. 知乎热榜数据

2.1 网页分析 
知乎热榜电脑端接口:
https://www.zhihu.com/hot
Nach dem Login kopieren
知乎热榜手机端接口:
https://api.zhihu.com/topstory/hot-list?limit=10&reverse_order=0
Nach dem Login kopieren

注意:电脑端端直接F12调试页即可看到热榜数据,手机端需要借助抓包工具查看,这里我们使用手机端接口(返回json格式数据,解析比较方便)。

Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)

2.2 Daten abrufen

Code:

def getzhihudata(url, headers):
    r = requests.get(url, headers=headers)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    datas = json.loads(r.text)['data']
    allinfo = []
    time_mow = time.strftime("%Y-%m-%d %H:%M", time.localtime())
    print(time_mow)
    for indx,item in enumerate(datas):
        title = item['target']['title']
        heat = item['detail_text'].split(' ')[0]
        answer_count = item['target']['answer_count']
        follower_count = item['target']['follower_count']
        href = item['target']['url']
        info = [time_mow, indx+1, title, heat, answer_count, follower_count, href]
        allinfo.append(info)
    # 仅首次加表头
    global csv_header
    df = pd.DataFrame(allinfo,columns=['时间','排名','标题','热度(万)','回答数','关注数','链接'])
    print(df.head())
Nach dem Login kopieren

定时间隔设置1S:

# 每1分钟执行一次爬取任务:
schedule.every(1).minutes.do(getzhihudata,zhihu_url,headers)
while True:
     schedule.run_pending()
     time.sleep(1)
Nach dem Login kopieren

效果:

Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)

2.3 保存数据

df.to_csv('zhuhu_hot_datas.csv', mode='a+', index=False, header=csv_header)
csv_header = False
Nach dem Login kopieren
注意csv_header的设置,涉及到是否写入表头字段。


3. Weibo-Hot-Suchdaten ness-Such-URL:

https://s.weibo.com/top/summary

Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)
F12 Sehen Sie sich den Quellcode der Webseite an:
Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)

Die Daten befinden sich im Tag

.

3.2 Daten abrufen

代码:

def getweibodata():
    url = 'https://s.weibo.com/top/summary'
    r = requests.get(url, timeout=10)
    r.encoding = r.apparent_encoding
    df = pd.read_html(r.text)[0]
    df = df.loc[1:,['序号', '关键词']]
    df = df[~df['序号'].isin(['•'])]
    time_mow = time.strftime("%Y-%m-%d %H:%M", time.localtime())
    print(time_mow)
    df['时间'] = [time_mow] * df.shape[0]
    df['排名'] = df['序号'].apply(int)
    df['标题'] = df['关键词'].str.split(' ', expand=True)[0]
    df['热度'] = df['关键词'].str.split(' ', expand=True)[1]
    df = df[['时间','排名','标题','热度']]
    print(df.head())
Nach dem Login kopieren

定时间隔设置1S效果:

Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)

3.3 保存数据

df.to_csv('weibo_hot_datas.csv', mode='a+', index=False, header=csv_header)
Nach dem Login kopieren

结果:

Crawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1)


Das obige ist der detaillierte Inhalt vonCrawler + Visualisierung |. Python Zhihu Hot List/Weibo Hot Search Sequenzdiagramm (Teil 1). 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