花三分鐘給女票寫一個爬蟲,作一回模範男朋友!

煩惱波及

女票是作運營的,一直苦惱於起推文標題。領導還會頻繁突襲:「XX,給此次活動擬一個標題。」node

tmd,本身份內的活都幹不完,卻要爲活動策劃起標題流汗,不是本身的活,還得笑着幹!着實煩人!python

更壞的是,負面情緒都是會傳染的,女票的煩惱就是咱的煩惱,甚至是大於咱的煩惱。/(ㄒoㄒ)/~~程序員

不過幸虧!,咱程序員的本領就是四個字:解決問題。(●'◡'●)json

爲此,咱們能夠花幾分鐘簡單寫一個爬蟲,再想要什麼標題,就不用空想了,直接讓她挑選就行!女孩子什麼的,最愛「逛該」了!api

閒言少敘,直接奧裏給!數組

解決思路

本瓜實際上是個爬蟲新手,不過這也不是啥複雜問題,咱就直接上 python !markdown

(不過過後感受仍是 node 好用,畢竟 js 操做咱都「精通」......)數據結構

基本思路:網站

  1. 安裝環境;
  2. 選取目標網站;
  3. 寫腳本;
  4. 運行並解析返回結果;
  5. 生成文件;

下面針對以上說說幾個要點:url

  1. python 安裝分爲 python2 和 python3,python3 並未向下兼容,二者區別較大,因此建議都安裝。命令行也作區分,教程大把,不作贅述;
  2. 選取目標網站,這個很關鍵,也須要花一點時間。須要分析頁面內容和本身的需求匹配程度,而後看請求和數據返回結構來做出選擇;
  3. 寫爬蟲腳本的思路基本上是「引入庫」=>「讀數據」=>「解析數據」=>「寫數據」;
  4. 解析的過程是最重要且最複雜的過程,須要數據結構理的清,正則匹配用的好;
  5. 咱們根據須要生成不一樣的文件,好比 .txt 、.xml 等,它們都有對應的庫,調用便可;

代碼實現

接下來直接上代碼:

  • 注:爬取數據有的是從返回的 HTML DOM 裏面拿,有的是從 XHR/JS 返回的 DATA 裏面拿;根據須要選擇,本次取後者~

// index.py

# 供獲取數據
import requests
# 供字符串轉數組
import json
# 設置 headers 防止被封
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3"
}
# 變量申明
write_content = ''
# 目標 url,解析參數很重要,此處的 size 本來爲 10,可調整至 1000,就不用寫循環了
url = "https://v2.sohu.com/integration-api/mix/region/10431?size=1000&adapter=pc&secureScore=50&page=1"

# 接受數據字符串
res = requests.get(url, headers=headers).text
# 字符串轉 json
j = json.loads(res)
# 拿到 data 數據
dataArr=j["data"]

# 遍歷
for i in dataArr:
    try:
        print(i['title'])
        # 標題 + 換行
        write_content = i['title']+'.\n'+'.\n'
        with open("souhuEduTitle.txt","a",encoding="utf-8") as f:
            f.write(write_content)
    # 此處錯誤捕獲很是重要,目標網站列表有些是廣告項,沒有 title 屬性
    except KeyError:
        pass
複製代碼

運行

python3 index.py
複製代碼

就能獲得幾百條關於中小學教育行業文章標題的爬取數據啦:

意外收尾

如何?花三分鐘給女票寫一個爬蟲,咱也要作一回模範男朋友,解決女票痛之痛。哈哈🤭,彷佛立刻就要被表揚了呢~

因而乎,本瓜高興滿滿把 .txt 發與女票,結果誰曾想獲得以下回復:

好吧,女生「逛該」果真都很挑,打擾了~

咱不如先直接給她畫個餅撐飽她吧🤭:

相關文章
相關標籤/搜索