自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python爬蟲入門練手案例,爬取某乎問答數(shù)

開發(fā) 后端
Python是個獲取數(shù)據(jù)的小能手,所以這次希望能用它在*乎爬取一些的問題的回答數(shù),練練手。

前言

Python是個獲取數(shù)據(jù)的小能手,所以這次希望能用它在*乎爬取一些的問題的回答數(shù),練練手。

1.導(dǎo)入模塊

  1. import re 
  2. from bs4 import BeautifulSoup 
  3. import requests 
  4. import time 
  5. import json 
  6. import pandas as pd 
  7. import numpy as np 

2.狀態(tài)碼

  1. r = requests.get('https://github.com/explore'
  2. r.status_code 

3. 爬取*乎

  1. #瀏覽器header和cookies 
  2. headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'
  3. cookies = {'cookie':'_zap=3d979dbb-f25b-4014-8770-89045dec48f6; d_c0="APDvML4koQ-PTqFU56egNZNd2wd-eileT3E=|1561292196"; tst=r; _ga=GA1.2.910277933.1582789012; q_c1=9a429b07b08a4ae1afe0a99386626304|1584073146000|1561373910000; _xsrf=bf1c5edf-75bd-4512-8319-02c650b7ad2c; _gid=GA1.2.1983259099.1586575835; l_n_c=1; l_cap_id="NDIxM2M4OWY4N2YwNDRjM2E3ODAxMDdmYmY2NGFiMTQ=|1586663749|ceda775ba80ff485b63943e0baf9968684237435"; r_cap_id="OWY3OGQ1MDJhMjFjNDBiYzk0MDMxMmVlZDIwNzU0NzU=|1586663749|0948d23c731a8fa985614d3ed58edb6405303e99"; cap_id="M2I5NmJkMzRjMjc3NGZjNDhiNzBmNDMyNDQ3NDlmNmE=|1586663749|dacf440ab7ad64214a939974e539f9b86ddb9eac"; n_c=1; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1586585625,1586587735,1586667228,1586667292; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1586667292; SESSIONID=GWBltmMTwz5oFeBTjRm4Akv8pFF6p8Y6qWkgUP4tjp6; JOID=UVkSBEJI6EKgHAipMkwAEWAkvEomDbkAwmJn4mY1kHHPVGfpYMxO3voUDK88UO62JqgwW5Up4hC2kX_KGO9xoKI=; osd=UlEXAU5L4EelEAuhN0kMEmghuUYlBbwFzmFv52M5k3nKUWvqaMlL0vkcCaowU-azI6QzU5As7hO-lHrGG-d0pa4=; capsion_ticket="2|1:0|10:1586667673|14:capsion_ticket|44:YTJkYmIyN2Q4YWI4NDI0Mzk0NjQ1YmIwYmUxZGYyNzY=|b49eb8176314b73e0ade9f19dae4b463fb970c8cbd1e6a07a6a0e535c0ab8ac3"; z_c0="2|1:0|10:1586667694|4:z_c0|92:Mi4xOGc1X0dnQUFBQUFBOE84d3ZpU2hEeVlBQUFCZ0FsVk5ydTVfWHdDazlHMVM1eFU5QjlqamJxWVhvZ2xuWlhTaVJ3|bcd3601ae34951fe72fd3ffa359bcb4acd60462715edcd1e6c4e99776f9543b3"; unlock_ticket="AMCRYboJGhEmAAAAYAJVTbankl4i-Y7Pzkta0e4momKdPG3NRc6GUQ=="; KLBRSID=fb3eda1aa35a9ed9f88f346a7a3ebe83|1586667697|1586660346'
  4.  
  5. start_url = 'https://www.zhihu.com/api/v3/feed/topstory/recommend?session_token=c03069ed8f250472b687fd1ee704dd5b&desktop=true&page_number=5&limit=6&action=pull&ad_interval=-1&before_id=23' 

4. beautifulsoup解析

  1. s = requests.Session() 
  2. start_url = 'https://www.zhihu.com/' 
  3. html = s.get(url = start_url, headers = headers,cookies = cookies,timeout = 5) 
  4. soup = BeautifulSoup(html.content) 
  5.  
  6. question = [] ## 名稱 
  7. question_address = [] ## url 
  8.  
  9. temp1 = soup.find_all('div',class_='Card TopstoryItem TopstoryItem-isRecommend'
  10. for item in temp1: 
  11.     temp2 = item.find_all('div',itemprop="zhihu:question"
  12. #     print(temp2) 
  13.     if temp2 != []: #### 存在專欄等情況,暫時跳過 
  14.         question_address.append(temp2[0].find('meta',itemprop='url').get('content')) 
  15.         question.append(temp2[0].find('meta',itemprop='name').get('content')) 

5. 存儲信息

  1. question_focus_number = [] #關(guān)注量 
  2. question_answer_number = [] # 回答量 
  3. for url in question_address: 
  4.     test = s.get(url = url,headers = headers,cookies = cookies,timeout = 5) 
  5.     soup = BeautifulSoup(test.content) 
  6.     info = soup.find_all('div',class_='QuestionPage')[0] 
  7. #     print(info) 
  8.     focus_number = info.find('meta',itemprop="answerCount").get('content'
  9.     answer_number = info.find('meta',itemprop="zhihu:followerCount").get('content'
  10.     question_focus_number.append(focus_number) 
  11.     question_answer_number.append(answer_number) 

6. 整理信息并輸出

  1. question_info = pd.DataFrame(list(zip(question,question_focus_number,question_answer_number)),columns = ['問題名稱','關(guān)注人數(shù)','回答人數(shù)'
  2. for item in ['關(guān)注人數(shù)','回答人數(shù)']: 
  3.     question_info[item] = np.array(question_info[item],dtype = 'int'
  4. question_info.sort_values(by='關(guān)注人數(shù)',ascending = False

輸出:

 

Python爬蟲入門練手案例,爬取某乎問答數(shù)(附源碼)

7. 總計:

簡單的爬取并不難,但涉及到賬戶密碼等,就需要注意了。爬取數(shù)據(jù)盡量不要給人家服務(wù)器造成負(fù)擔(dān)(比如:把睡眠時間加長);不要把爬取的數(shù)據(jù)用于商業(yè)行為;不管技術(shù)有多牛,不要輕易觸碰用戶隱私數(shù)據(jù)。合理、合法、有節(jié)制的利用爬蟲技術(shù),要不可能給自己帶來不必要的麻煩。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2017-05-24 15:07:19

Python爬蟲爬取

2016-12-07 11:18:58

Python爬蟲網(wǎng)站

2016-01-22 12:20:11

PHP數(shù)據(jù)爬取分析

2020-10-26 15:09:35

Python爬蟲網(wǎng)頁數(shù)據(jù)

2021-03-18 09:18:12

python爬蟲

2015-10-29 13:22:09

php數(shù)據(jù)分析爬蟲

2017-06-16 21:00:02

Python爬蟲

2017-12-14 21:45:39

2021-06-02 22:18:11

Python關(guān)鍵詞微博

2016-12-08 16:47:06

2021-09-03 09:26:15

Python爬蟲百度百科

2021-05-08 08:04:05

Python爬取素材

2016-11-07 15:23:37

Python

2021-06-02 15:10:20

PythonScrapy視頻

2016-12-22 17:01:11

2017-11-20 09:46:08

python爬蟲Scrapy

2023-08-30 08:43:42

asyncioaiohttp

2020-10-12 08:19:43

Python爬蟲網(wǎng)頁數(shù)據(jù)

2021-02-06 13:10:05

工具代碼爬蟲

2018-01-02 16:30:27

Python爬蟲微博移動端
點贊
收藏

51CTO技術(shù)棧公眾號