一、准備工作(找到所需網站,獲取請求頭,並用到請求頭)
- 找到所需爬取的網站(這里舉拉勾網的一些靜態數據的獲取)----------- https://www.lagou.com/zhaopin/Python/

- 請求頭的作用:模擬真實用戶進入網站瀏覽數據-----------headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',}
- r=requests.get("https://www.lagou.com/zhaopin/Python/",headers=headers)-------------------這兩行就是模擬用戶進入網站
- 找到數據所在網頁的標簽(html網頁右鍵源代碼查看即可)

假設這里的15k-25k是我們要的數據,右鍵查看按箭頭查看即可-----例如這里是span標簽class=''money''(可以點擊下面的控制台查看money是什么屬性,有的是id=“money”這樣的)------具體得看html代碼
- 准備工作完畢
二、代碼演示:(開始爬取)
2.1如果爬取的數據亂碼,可以加入這三句話,定義輸出格式
import io import sys sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
2.2爬取職位等相關信息(完整代碼)
import requests import re import itertools from bs4 import BeautifulSoup import io import sys sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',}-------------請求頭 r=requests.get("https://www.lagou.com/zhaopin/Python/",headers=headers)---------------請求該網頁 r.encoding=r.apparent_encoding result=r.text------------------------------------------獲取網頁文檔 bs=BeautifulSoup(result,'html.parser') # soup.find_all(string=re.compile('python')) li1=bs.find_all('h3')-------------------------------------------查找該頁面所有h3標簽 # len1=len(li1) # for i in li1:-----------------------------------------------用來測試輸出的內容 # print(i.string) li2=bs.find_all('em') # len2=len(li2) # for i in li2:--------------------------------------------用來測試輸出的內容 # print(i.string) li3=bs.find_all('span',class_="money") # len3=len(li3) # for i in li3: # print(i.string) li4=bs.find_all('div',class_="industry") # len4=len(li4) # for i in li4: # print(i.string) print("職位:".ljust(15),"地點:".center(15),"薪水:".center(15),"需求:".rjust(15)) print("------------------------------------------------------------------------------------------------") for li_1,li_2,li_3,li_4 in zip(li1,li2,li3,li4):--------------------------------------------------------------------------四個列表整合(每一行一個元素對應) print(li_1.string.ljust(15),li_2.string.center(15),li_3.string.center(15),li_4.string.rjust(15).strip())-------------strip()是用來去除字符串左右兩邊的空格(不然太長不好排版)
2.3運行結果

三、技術不是很難,但也很有用,不過這里得提醒一下(最好是將網頁的html文檔存放在本地,一直請求服務器是很不友好的行為喲!)
- 拓展:可以試着將數據存到txt文檔或者excl表格中,更直觀喲!
