python簡單爬蟲實操

2019年底看完謝春花的《2020磁玉,請對我好一點》的演唱會停忿,發(fā)現(xiàn)2020開頭并沒有那么順利,面試終面沒過蚊伞,其他機會也不算靠譜席赂,在遇上新冠,注定這一年會很艱難时迫,目前的工作也會好好做颅停,只不過受不了996和在你休息的時候還有鋪天蓋地的不正經(jīng)工作要你參與,所以我想重新選擇一次掠拳。在這里告訴大家獵聘和boss直聘都不靠譜癞揉,好的機會還是靠熟人內(nèi)推和自己投遞靠譜。


? ? ? 最近在單位忙于整理各種材料,各種材料線上評審喊熟,剛好剛才再弄一個項目的付款柏肪,了解完付款流程后,我無語+快奔潰了芥牌,首先線下收集材料->十多個表掃描通過OA走一遍付款申請烦味,同樣的再提一遍財務(wù)支出申請,通過后壁拉,紙質(zhì)材料找領(lǐng)導(dǎo)簽字谬俄,然后提交給財務(wù)。扇商。凤瘦。。案铺。心里幾萬只草泥馬飛過蔬芥。。控汉。

? ? ? 為了上班摸魚方便笔诵,重新拾起了爬蟲,并且這個銀行招聘網(wǎng)站是靜態(tài)的姑子,于是我就想爬一爬最新的招聘信息乎婿。這里的主要難點是去到正確的tag和內(nèi)容,之前用xpath取街佑,一直不對谢翎,取出來的都是一整塊,要不就是其中一段沐旨,最后好好研究了以下bs4的find_all 和find還有select方法森逮,終于成功的取到了想要的數(shù)據(jù),并且sqlite3數(shù)據(jù)庫比較簡單磁携,就把最新的數(shù)據(jù)存儲到數(shù)據(jù)表了褒侧,收取每一天最新的記錄,為了避免重復(fù)谊迄,每一天收集前闷供,我會清理當(dāng)天的數(shù)據(jù),具體代碼如下统诺,用到了以下庫request用來下載html網(wǎng)頁侠讯,lxml用來解析html標(biāo)簽呆盖,re用來截取日期,sqlite3用來創(chuàng)建數(shù)據(jù)庫并存儲數(shù)據(jù),datetime用來取當(dāng)前日期并格式化,time用來暫停cmd窗口看刪了幾條數(shù)據(jù)

`

#--utf-8--

#獲取銀行招聘信息匯總

import requests

from lxml import etree

from bs4 import BeautifulSoup

import re

import sqlite3

import datetime

import time

headers={'User-Agent':"Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36(KHTML,like Gecko) Chrome/53.0.2785.143 Safari/537.36"}

#從網(wǎng)絡(luò)獲取內(nèi)容

def get_links(url):

? ? raw_content=requests.get(url,headers=headers)

? ? html=raw_content.text

? ? return html

#從本地文件獲取內(nèi)容

def? get_local(url):

? ? fp=open(url,'r')

? ? raw_text=fp.read()

? ? fp.close()

? ? return raw_text

###midder > div.ll > div > div:nth-child(4) > dl:nth-child(1) > dd:nth-child(3)

def get_zpinfo(raw_text,filename,database):

? ? bs=BeautifulSoup(raw_text,"lxml")

? ? cnt=0

? ? fullcontent=""

? ? #獲取當(dāng)前日期

? ? curdate=str(datetime.date.today())

? ? #刪除當(dāng)日查詢記錄,以便導(dǎo)入

? ? delcur(database,curdate)

? ? #延遲幾秒方便看結(jié)果

? ? time.sleep(5)

? ? contents=bs.select("#midder > div.ll > div > div:nth-child(4) > dl")

? ? for zplist in contents:

? ? ? ? title=zplist.find('a').get_text() #標(biāo)題

? ? ? ? raw_date=zplist.select("dd.list")[0].text? #發(fā)布日期

? ? ? ? date=re.search(r'\d\d\d\d-\d\d-\d\d',raw_date).group()

? ? ? ? location=zplist.select("dd")[1]? #工作地點

? ? ? ? url=zplist.find('a').get("href") #連接

? ? ? ? print(title+"? "+date+"? "+location.text+" "+url)

? ? ? ? if(date==curdate):

? ? ? ? ? ? insertdb(database,title,location.text,date,url)

? ? ? ? ? ? cnt=cnt+1

? ? ? ? fullcontent=fullcontent+title+","+date+","+location.text+","+url+"\n"? ?

? ? ? ? print("++++++++++++++++")

? ? print("========database insert $"+str(cnt)+"條")

? ? save2file(filename,fullcontent)#把信息存入txt

#保存信息到文件

def save2file(filename,content):

? ? fp=open(filename,'w')

? ? fp.write(content)

? ? fp.close()? ? ?

#創(chuàng)建數(shù)據(jù)庫

def createdb(database):

? ? conn=sqlite3.connect(database)

? ? c=conn.cursor()

? ? crtsql='''

? ? create table zpinfo(

? ? titile text,

? ? location char(50),

? ? fbdate? char(20),

? ? url? text,

? ? summary text

? ? );

? ? '''

? ? c.execute(crtsql)

? ? conn.commit()

? ? conn.close()

#簡單的插入數(shù)據(jù)庫

def insertdb(database,title,location,fbdate,url):

? ? conn=sqlite3.connect(database)

? ? c=conn.cursor()

? ? #print("open database:"+database+"sucess!")

? ? sql="insert into zpinfo values (? '"+title+"', '"+location+"','"+fbdate+"','"+url+"','');"

? ? c.execute(sql)

? ? conn.commit()

? ? conn.close()

#爬行去重 去除國內(nèi)外時事政治,數(shù)據(jù)庫插入如何檢索最新的記錄進行插入,根據(jù)日期進行檢索

#刪除當(dāng)天記錄香璃,以便重復(fù)導(dǎo)入,去重

def? delcur(database,date):

? ? conn=sqlite3.connect(database)

? ? c=conn.cursor()

? ? sql="delete from zpinfo where fbdate='"+date+"';"

? ? c.execute(sql)

? ? conn.commit()

? ? print("刪除總條數(shù) :",conn.total_changes)

#selector is #midder > div.ll > div > div:nth-child(4) > dl:nth-child(1) > dt > a

if __name__ == '__main__':

? ? url="http://www.yinhangzhaopin.com/new100.htm"

? ? html=get_links(url)

? ? ldir="D:/coding/new100.html"

? ? database="D:/coding/zhaopin.db"

? ? zhaopinfile="d:/coding/yinhangzhaopin.txt"

? ? #html=get_local(ldir)

? ? #createdb(database)

? ? get_zpinfo(html,zhaopinfile,database)

`

相關(guān)代碼已經(jīng)上傳到https://github.com/redpig315/jidandan舟误,哈哈葡秒,這就發(fā)現(xiàn)python還是非常好用的,并且網(wǎng)站上的資料比看書方便嵌溢,比如這個介紹python爬蟲的https://www.w3cschool.cn/python3/python3-enbl2pw9.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眯牧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赖草,更是在濱河造成了極大的恐慌学少,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秧骑,死亡現(xiàn)場離奇詭異版确,居然都是意外死亡,警方通過查閱死者的電腦和手機乎折,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門绒疗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骂澄,你說我怎么就攤上這事吓蘑。” “怎么了坟冲?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵磨镶,是天一觀的道長。 經(jīng)常有香客問我健提,道長琳猫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任矩桂,我火速辦了婚禮沸移,結(jié)果婚禮上痪伦,老公的妹妹穿的比我還像新娘侄榴。我一直安慰自己,他們只是感情好网沾,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布癞蚕。 她就那樣靜靜地躺著,像睡著了一般辉哥。 火紅的嫁衣襯著肌膚如雪桦山。 梳的紋絲不亂的頭發(fā)上攒射,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音恒水,去河邊找鬼会放。 笑死,一個胖子當(dāng)著我的面吹牛钉凌,可吹牛的內(nèi)容都是我干的咧最。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼御雕,長吁一口氣:“原來是場噩夢啊……” “哼矢沿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酸纲,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捣鲸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闽坡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栽惶,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年无午,在試婚紗的時候發(fā)現(xiàn)自己被綠了媒役。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡宪迟,死狀恐怖酣衷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情次泽,我是刑警寧澤穿仪,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站意荤,受9級特大地震影響啊片,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玖像,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一紫谷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捐寥,春花似錦笤昨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乡洼,卻和暖如春崇裁,著一層夾襖步出監(jiān)牢的瞬間匕坯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工拔稳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留葛峻,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓巴比,卻偏偏與公主長得像泞歉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匿辩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容