5分鐘擼了個(gè)小小爬蟲....
咪哥雜談

本篇閱讀時(shí)間約為 4 分鐘。
1
前言
這幾天在用“必應(yīng)”搜索時(shí),發(fā)現(xiàn)必應(yīng)的背景圖片挺好看的,有的是風(fēng)景,有的是動(dòng)物。。。于是產(chǎn)生了一個(gè)想法,爬下來當(dāng)做桌面背景圖吧。。
2
開工
簡單的分析下:必應(yīng)首頁。

如何下載呢?其實(shí)很簡單,說下邏輯。
requests庫請(qǐng)求主頁,正則匹配地址,再用 requests 請(qǐng)求,將返回的 content 以二進(jìn)制的形式寫入文件,保存為圖片。
核心代碼:
url = 'https://cn.bing.com'headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) ''AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15'}r = requests.get(url=url, headers=headers)#?正則匹配到?url 地址a = re.findall(r'rel="preload" href="(.*?)" as="image"', r.text)if a:????#?拼接?https://cn.bing.com/xxxxxx圖片的地址picture_url = parse.urljoin(url, a[0])print(f'當(dāng)前圖片地址:{picture_url}')r_picture = requests.get(url=picture_url, headers=headers)write_file(file, r_picture.content) # 寫入文件
執(zhí)行后的結(jié)果:

主要是正則表達(dá)式,如何書寫,匹配出來,用 urllib 的 urljoin 方法拼接下圖片地址即可。可以看下核心代碼的相關(guān)注釋。
3
定時(shí)任務(wù)
windows系統(tǒng):
如果你是 windows 環(huán)境,推薦看下這篇博客,之前是我總結(jié)的如何用 windows 定時(shí)執(zhí)行 Python 文件。
https://blog.csdn.net/s740556472/article/details/78239204
大咪的csdn博客
了解 Linux 系統(tǒng)的同學(xué),一定知道有個(gè)自帶的系統(tǒng)工具,叫 crontab。
使用方法,兩個(gè)。
1. 編輯 crontab :
crontab -e
回車后,進(jìn)入內(nèi)容,用法和 vim 一樣,按下 i 即可編寫,然后 wq?保存。

0 10 * * * /Users/sy/anaconda3/bin/python /Users/sy/PycharmProjects/python-tools/spider/bing_picture/crawl_bing.py > /Users/sy/PycharmProjects/python-tools/spider/bing_picture/log第一段,是cron特有的時(shí)間配置表達(dá)式,可以看下圖的簡介,順便給大家一個(gè)網(wǎng)址,可以在線查看其表達(dá)式的含義。而我腳本中寫的則是每天十點(diǎn)整執(zhí)行 Python。

工具網(wǎng)址:
https://tool.lu/crontab/寫完 cron 表達(dá)式,后面跟的其實(shí)就是 python xxx.py 這樣的命令,只不過,在 cron 中一定要寫絕對(duì)路徑,否則不生效。
再執(zhí)行 python 命令的基礎(chǔ)上,我還追加了 > xxx.log 這樣,意思是將 python 腳本的打印內(nèi)容輸出到一個(gè)指定目錄的 log 文件里。
2.?查看定時(shí)任務(wù)?crontab:
crontab?-l
每日自動(dòng)抓取,導(dǎo)入圖片,換背景即可。

4
總結(jié)
本篇介紹的定時(shí)工具,其實(shí)用途很大,因?yàn)榛谙到y(tǒng)層面,所以不依賴于腳本,只要你電腦開著,就可以隨心所欲的觸發(fā)你寫的腳本,而不依賴你腳本本身使用代碼的定時(shí)任務(wù)!
想看完整代碼的同學(xué),可以后臺(tái)回復(fù) bing ,即可獲得。
你點(diǎn)的每個(gè)在看,我都認(rèn)真當(dāng)成了喜歡評(píng)論
圖片
表情
