Python爬取51jobs之資料清洗 3

2021-09-10 22:53:02 字數 1501 閱讀 1396

前面已經用get_webpage方法獲取**,下面說一說如何從**資訊中過濾出我想要的資訊(招聘公司,招聘資訊,薪水)。

以乙個公司招聘**為例子,

ur=『
』我們要獲取這3個地方的文字資訊

首先匯入requests模組,寫上請求頭

import requests

import re

from bs4 import beautifulsoup

def data_cleaning():

user_agent = 'mozilla/4.0 (compatible;msie 5.5; windows nt)'

headers =

url = ""

r = requests.get(url, headers)

soup = beautifulsoup(r.text, 'html.parser', exclude_encodings="utf-8")

接著在利用正則,bs4模組獲取目的資訊

def data_cleaning():

.... # 省略之前寫的

# 1,公司名稱

sname = soup.find_all(class_='catn')[0]['title']

# 2,職位資訊

directory = soup.find_all(class_='bmsg job_msg inbox')[0] # 返回乙個# typeerror: 'nonetype' object is not callable

job_datas = str(directory).replace("\n", "")

pattern = re.compile('(.*?)', '').replace('

','\n')

# 3,月薪

job_salary = soup.find_all(class_='cn')[0].strong.text

return sname,job_data,job_salary

值得注意的是:

job_datas = str(directory).replace("\n", "")

首先:directory = soup.find_all(class_='bmsg job_msg inbox')[0]返回的是乙個元素,到底在python裡面算什麼(nonetype),反正不是字串,所以首先要將directory轉換為字串

然後directory其實還有很多換行符「/n」在你除錯的時候並不會顯示,但你在正則匹配的時候它又確確實實存在,所以為了方便消除換行符,用字串的replace方法

後續只要將sname,job_data,job_salary存入mysql資料庫就算基本ok了。

爬取電影資源之網頁爬取篇(python)

6v電影網的主頁分為三列,如下圖所示。該網每天會推薦一些電影 如上圖中的 今日推薦 電影質量還算可以,大部分電影評分還行。所以這部分及是我們現在要提取的部分。然後我們檢視其原始碼,找到該部分的 還是很好找的,網頁結構比較簡單 見下圖 為了驗證找到的 區域是否為我們需要的,可以把圖中框出的 複製到乙個...

python之websocket資料爬取

首先我爬取的是 貨幣網的 爬取商家的購買和 的資料 下面是我利用websocket庫進行爬取的 不廢話,直接上碼.import json,time from websocket import create connection class otc number 是區分購買和 number 0 這個 ...

python之爬取郵箱電話

這裡使用requests庫爬取網頁要比urllib庫方便 用finditer查詢 import requests import re url 帶爬取的網頁 html requests.get url text text為轉化為str資料 pat w w com d 正則模式 res re.findi...