python——爬蟲的介紹
python——requests庫的學習
python——bs4(beautifulsoup)庫的學習
python——re庫(正規表示式)的學習
進入趕集網首頁,呼叫網頁搜尋,輸入查詢範圍
找到具體職位**
檢視源**,進行分析,查詢所需資料位置
學習爬蟲後試煉成果檢驗,時刻獲取趕集網當前最新招聘資訊,輸入你所需求的職位,幫你拿到第一手招聘資訊
#python專案
import requests #匯入requests模組——獲取網頁
import bs4
from bs4 import beautifulsoup #匯入bs4模組——解析網頁
import re #匯入re模組——在網頁資料中獲取需求資料
import csv #匯入csv模組——以csv檔案儲存資料
#獲取乙個網頁物件
def gethtmltext():
try:
#帶引數的get請求
keyword=input("請輸入求職職位:") #輸入需求的範圍
url=''+keyword #得到對應網頁位址
r = requests.get(url) #獲取respond物件
r.raise_for_status()
return r.text
except:
return""
def findhreflist(hlist,htext,html):
#建立檔案儲存資料
f = open('test.csv', mode='a+',encoding='utf-8',newline='')
writer = csv.writer(f)
writer.writerow(["職位","鏈結"])#在檔案中儲存資料
#建立乙個beautifulsoup解析物件
soup = beautifulsoup(html,"html.parser")
"""soup 表示被解析的html格式的內容
html.parser表示解析用的解析器
"""#在soup物件中尋找所有職位鏈結及職位名稱並儲存
for div in soup.find_all('div',attrs = ):
for a in div.find_all('a'):#利用迴圈查詢所有'a'標籤
if isinstance(a,bs4.element.tag):#判斷乙個物件是否是乙個已知的型別
a_href=a.get('href')
a_url=re.search(r'/(\w+)/(\d+)x\.htm',a_href,re.m|re.i)#利用正則獲取資料
if a_url:
writer.writerow((a.get_text(),a_url.group()))
f.close()
#尋找所有求職人數及求職方向
def findem(html):
#建立檔案儲存資料
f = open('test.csv', mode='w+',encoding='utf-8',newline='')
writer = csv.writer(f)
writer.writerow(["求職方向","方向人數"])
#解析物件
soup = beautifulsoup(html,"html.parser")
for a in soup.find_all('a'):
if isinstance(a,bs4.element.tag):
if (a.em!=none):
zp_direction=a.em.get_text()
searchzpd = re.search( r'(.*)\((\d+)\)', zp_direction, re.m|re.i)
if searchzpd:
direction=searchzpd.group(1)
quantity=searchzpd.group(2)
writer.writerow((direction,quantity)) #寫入表
f.close()
#顯示第一時間內爬取得到的職位
def printhtext(htext):
print("\t".format("序號","職位"))
for i in range(len(htext)):
u=htext[i]
print("\t".format(i,u))
#選擇所需職位的對應鏈結
def gethref(hlist,num):
try:
for i in range(len(hlist)):#遍歷所有連線,尋找所需鏈結
if i==num:
href=hlist[i]#得到所需鏈結
if href!=none:
url= ''+href#到完整鏈結
r = requests.get(url)#獲取respond物件
r.raise_for_status()
return r.text
except:
print("無職位資訊")
#所求職位的對應資訊
def findarticle(html_h):
try:
#建立檔案儲存資料
f = open('test01.csv', mode='w+',encoding='utf-8',newline='')
writer = csv.writer(f)
writer.writerow(["具體職位","工資","位址","職位描述"])
#解析物件
soup = beautifulsoup(html_h,"html.parser")
'''利用find_all(),使用標籤的屬性搜尋標籤,尋找 class=」title-line clearfix」的 div 標記
find_all() 方法將返回文件中符合條件的所有tag,需要遍歷尋找所需資料
'''for div in soup.find_all('div',attrs = ):
title=div.get_text().replace("\n","")
#print(title)
for div in soup.find_all('div',attrs = ):
salary=div.get_text().replace("\n","")
#print(salary)
for div in soup.find_all('div',attrs = ):
location=div.get_text().replace(" ", "")
location=location.replace("\n","")
location=re.sub(r'檢視地圖',"", location)
#print(location)
for div in soup.find_all('div',attrs = ):
description=div.get_text().strip()
#print(description)
writer.writerow((title,salary,location,description))
print("請到當前目錄下(test01.csv)檢視職位資訊")
except:
print("無職位資訊")
def main():
ulist= #鏈結
htext=#具體職位
html=gethtmltext()
findem(html)
findhreflist(ulist,htext,html)
printhtext(htext)
num=int(input("請選擇具體職位:"))#具體職位選擇
html_h=gethref(ulist,num)
findarticle(html_h)
main()
以上**在python3.7idle下執行如下圖所示
檢視test01.csv檔案
此次專案的實現過程中,遇見的難題:
這次爬蟲練習之路沒有什麼陷阱和阻礙,都是爬蟲學習的基礎知識,沒有遇見什麼不可實現的問題,不過正規表示式和樹結構這樣的基礎值得反覆加深印象
學習過程中的小知識:
爬蟲爬取趕集網租房資訊
如下 示例 import scrapy import numpy as np import pandas as pd import matplotlib.pyplot as plt 如下 示例 terminal 終端實現 cd 跳轉到上一層目錄 scrapy startproject booktop...
Python爬蟲初體驗之趕集網租房資訊獲取
初學python,剛接觸了beautifulsoup模組,就拿爬取趕集網租房資訊小試身手,以此彰顯python的威猛強大。一 環境配置 1 python 3.6.1 windows 10 64位系統 2.pycharm 編譯器 1 bs4 可通過在shell中pip install bs4 進行安裝...
趕集網緣何化身「趕驢網」
趕集網在2月初開始在央視 地鐵 滾動播出自己的廣告,這個廣告是由國內著名的策劃大師葉茂中做的策劃,廣告的大致情節是姚晨帶著一頭小毛驢去趕集,整個廣告片樂趣橫生並在觀眾心中留下了很深的印象。據悉趕集網還將在國內熱門的幾大衛視熱門節目中也投放廣告。然而就在此刻開始發生了乙個插曲,即在次廣告播出後有一些觀...