python 爬取網頁簡單數據---以及詳細解釋用法


一、准備工作(找到所需網站,獲取請求頭,並用到請求頭)

  • 找到所需爬取的網站(這里舉拉勾網的一些靜態數據的獲取)----------- 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表格中,更直觀喲!

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM