[python爬蟲]爬取boss直聘並且存到Mysql資料庫裡
導包
import chardet,re,json,pymysql
from urllib import request,parse
from piaot import *
Mysql
def sql(sql_z): # 開啟資料庫連線 db = pymysql.connect("192.168.43.128", "root", "123456", "boss", charset='utf8') # 使用 cursor() 方法建立一個遊標物件 cursor cursor = db.cursor() # 使用 execute() 方法執行 SQL 查詢 cursor.execute('') # 使用 fetchone() 方法獲取單條資料. data = cursor.fetchone(sql_z) print("Database version : %s " % data) # print(x) # 關閉資料庫連線 db.close()
mysql查詢
def sql_cx(sql_z): # 開啟資料庫連線 db = pymysql.connect("192.168.43.128", "root", "123456", "boss", charset='utf8') # 使用 cursor() 方法建立一個遊標物件 cursor cursor = db.cursor() # 使用 execute() 方法執行 SQL 查詢 data=cursor.execute(sql_z) # print("Database version : %s " % data) # 關閉資料庫連線 db.close() return data
查詢城市編號
def chengshi(sheng,shi): if shi == None: shi=sheng url = 'http://www.zhipin.com/common/data/city.json' # 呼叫自定義包 req = yc(url) ll = chardet.detect(req) html = req.decode(ll['encoding']) # 用json解碼 html=json.loads(html) b=[] for j in html['data']['cityList']: if j['name'] == sheng: for i in j['subLevelModelList']: if i['name'] == shi: b.append((i['name'],i['code'])) # 返回格式:['保定',101091100] return b
爬取要查詢的名稱列表頁,引數:省/城市,區/縣,查詢內容,頁數
def pq_xx(sheng,qu,nr,ye):
# 將name值轉成url編碼
name = parse.quote(nr)
for i in range(1,ye+1):
if qu == None:
# 拼接url地址
url = 'http://www.zhipin.com/job_detail/?query={}&scity={}&page={}'.format(name,sheng[0][1],ye)
else:
# 將城市值轉成url編碼
qu = parse.quote(qu)
# 拼接url地址
url='http://www.zhipin.com/c{}/b_{}-h_{}/?query={}&page={}'.format(sheng[0][1],qu,sheng[0][1],name,ye)
pq_lb_nr(url)
爬取列表裡的內容
def pq_lb_nr(url):
req=yc(url)
ll=chardet.detect(req)
html=req.decode(ll['encoding'])
zz='<h3 class="name">\s*?<a href="(.*?)"'
nr_str=re.compile(zz)
html=nr_str.findall(html)
for i in html:
url_l='http://www.zhipin.com'+i
pq_nr(url_l)
爬取內容資訊
def pq_nr(url):
try:
# 提交申請,呼叫自定義包
req = yc(url)
# 自動檢測編碼格式
ll = chardet.detect(req)
# 轉碼
html = req.decode(ll['encoding'])
# 正則
zz = 'ka="job-breadcrumb-top4">(.*?)</a>|<span class="time">(.*?)</span>|<span class="badge">(.*?)</span>|<p>(.*?)<em class="vline"></em>(.*?)<em class="vline"></em>(.*?)</p>'
str_1 = re.compile(zz)
html_1 = str_1.findall(html)
# 將獲得標題的資訊進行去除空值
x = []
for i in html_1:
for j in i:
if j != '':
x.append((j.split(':')[-1]))
x.pop(-2)
# x值是清洗好的值
# print(x)
# 正則,獲得內容裡的崗位職責和任職要求和地址圖片
zz_1 = 'div class="text">\s*(.*?)\s*?</div>|data-content="(.*?)">\s*<img src="(.*?)" alt='
ll_2 = re.compile(zz_1)
html_2 = ll_2.findall(html)
# 將匹配完的資訊進行清洗,去除<br\>和去空
x_1 = []
for i in html_2:
for j in i:
if j != '':
b = j.replace('<br/>', '')
x_1.append((b,))
# x_1清洗完的值
# print(x_1)
# 如果報錯或代理失效
except:
# 重新呼叫
pq_nr(url)
# sql查詢語句
sql_cx_str="select uid from boss_cs WHERE uid='{}'".format(url)
if sql_cx(sql_cx_str) == 0:
# 進行儲存sql語句
sql_str="insert into boss_cs(uid,uname,shij,chengshi,jyan,xueli,tozi,gsrshu,yunx,yaoq,gsxx,gsweizhi,weizhitxiang) values('{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}');".format(url,x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7],x_1[0][0],x_1[1][0]+x_1[2][0],x_1[-2][0],x_1[-1][0])
print(sql_str)
# 呼叫mysql
sql(sql_str)
else:
pass
主函式
def boss():
# 呼叫查詢城市函式
print('BOSS直聘')
sheng=input('請輸入你查詢的省:')
print('--'*20)
shi=input('請輸入查詢尋城市(預設無):')
print('--' * 20)
qu=input('請輸入區或縣(預設:空)')
print('--' * 20)
nr=input('請輸入查詢內容:')
print('--' * 20)
ye=int(input('請輸入頁數:'))
if len(shi) == 0:
shi=None
if len(qu) == 0:
qu=None
url=chengshi(sheng,shi)
# # 值1是:遍歷出的輸入的城市編號,值2:輸入的區或縣名稱,值3:輸入查詢的內容名稱,值4:頁數
pq_xx(url,qu,nr,ye)
if name == ‘main‘:
呼叫函式
boss()
相關推薦
[python爬蟲]爬取boss直聘並且存到Mysql資料庫裡
導包 import chardet,re,json,pymysql from urllib import request,parse from piaot import * Mysql def sql(sql_z): # 開啟資料庫連線
簡易python爬蟲爬取boss直聘職位,並寫入excel
python爬蟲寫入excel1,默認城市是杭州,代碼如下#! -*-coding:utf-8 -*-from urllib import request, parsefrom bs4 import BeautifulSoupimport datetimeimport xlwt starttime = dat
Python的scrapy之爬取boss直聘
在我們的專案中,單單分析一個51job網站的工作職位可能爬取結果不太理想,所以我又爬取了boss直聘網的工作,不過boss直聘的網站一次只能展示300個職位,所以我們一次也只能爬取300個職位。 jobbossspider.py: # -*- coding: utf-8 -*- import
Python的scrapy之爬取boss直聘網站
在我們的專案中,單單分析一個51job網站的工作職位可能爬取結果不太理想,所以我又爬取了boss直聘網的工作,不過boss直聘的網站一次只能展示300個職位,所以我們一次也只能爬取300個職位。 jobbossspider.py: # -*- coding: utf-8 -*- import scrapy
python爬取boss直聘原始碼
說明:登入boss直聘、獲取推薦牛人資訊、篩選牛人,然後進行溝通,目前只能做到溝通,還不能進行繼續交流。 圖片驗證碼目前只能將驗證碼圖片儲存到本地,通過圖片管理器開啟之後手工輸入。 一次登入後,可在會話失效前多次執行牛人推薦溝通 import requests from
python爬蟲爬取ithome的新聞儲存到本地資料庫
爬IT之家首頁的新聞,並讀取每篇新聞,並將新聞存到本地資料庫。 效率不是很高,請求各位大神指點。 from bs4 import BeautifulSoup import urllib.request import re import pymysql conn
pyspider爬蟲框架之boss直聘招聘資訊爬取
需求 需求: 1、 遍歷首頁所有職位分類 2、 點選進入職位分類詳情頁,按照地區抓取,職位名稱,月薪,經驗年限要求,學歷要求,招聘公司,所屬行業,輪次,人數(規模),釋出時間 3、 點選進入職位詳情頁,抓取該職位的技能標籤。 程式碼 程式碼有註釋
python爬蟲爬取QQ說說並且生成詞雲圖,回憶滿滿!
運維開發 網絡 分析 matplot 容易 jieba 編程語言 提示框 然而 Python(發音:英[?pa?θ?n],美[?pa?θɑ:n]),是一種面向對象、直譯式電腦編程語言,也是一種功能強大的通用型語言,已經具有近二十年的發展歷史,成熟且穩定。它包含了一組完善而且
利用python爬蟲爬取圖片並且制作馬賽克拼圖
python爬蟲 splay ise 做事 c-c sea mage item -a 想在妹子生日送妹子一張用零食(或者食物類好看的圖片)拼成的馬賽克拼圖,因此探索了一番= =。 首先需要一個軟件來制作馬賽克拼圖,這裏使用Foto-Mosaik-Edda(網上也有在
爬蟲進階:Scrapy抓取boss直聘、拉勾心得經驗
關於使用Scrapy的體會,最明顯的感受就是這種模板化、工程化的腳手架體系,可以說是拿來即可開箱便用,大多僅需按一定的規則套路配置,剩下的就是專注於編寫跟爬蟲業務有關的程式碼。絕大多數的反反爬蟲策略,大多有以下幾種: 忽略robots.txt協議 新增隨機請求
爬蟲之抓取 Boss直聘 資料到 Excel 中
宣告:此部落格爬取的資料只為學習爬蟲使用,絕非廣告 程式介紹 檔案目錄 ├── Zhipin_spider # 資料夾 │ ├── spider_main.py # 排程器。是
Python爬蟲-爬取糗事百科段子
hasattr com ima .net header rfi star reason images 閑來無事,學學python爬蟲。 在正式學爬蟲前,簡單學習了下HTML和CSS,了解了網頁的基本結構後,更加快速入門。 1.獲取糗事百科url http://www.qiu
python爬蟲爬取頁面源碼在本頁面展示
一個 nts ring 想要 strip code 空白 列表 ngs python爬蟲在爬取網頁內容時,需要將內容連同內容格式一同爬取過來,然後在自己的web頁面中顯示,自己的web頁面為django框架 首先定義一個變量html,變量值為一段HTML代碼 >&
python 爬蟲爬取 證券之星網站
爬蟲 周末無聊,找點樂子。。。#coding:utf-8 import requests from bs4 import BeautifulSoup import random import time #抓取所需內容 user_agent = ["Mozilla/5.0 (Windows NT 10.0
python爬蟲爬取海量病毒文件
tle format nbsp contex logs request spl tde __name__ 因為工作需要,需要做深度學習識別惡意二進制文件,所以爬一些資源。 # -*- coding: utf-8 -*- import requests import re
用Python爬蟲爬取廣州大學教務系統的成績(內網訪問)
enc 用途 css選擇器 狀態 csv文件 表格 area 加密 重要 用Python爬蟲爬取廣州大學教務系統的成績(內網訪問) 在進行爬取前,首先要了解: 1、什麽是CSS選擇器? 每一條css樣式定義由兩部分組成,形式如下: [code] 選擇器{樣式} [/code
python爬蟲——爬取古詩詞
爬蟲 古詩詞 實現目標 1.古詩詞網站爬取唐詩宋詞 2.落地到本地數據庫頁面分析 通過firedebug進行頁面定位: 源碼定位: 根據lxml etree定位div標簽:# 通過 lxml進行頁面分析 response = etree.HTML(data
利用Python爬蟲爬取淘寶商品做數據挖掘分析實戰篇,超詳細教程
實戰 趨勢 fat sts AI top 名稱 2萬 安裝模塊 項目內容 本案例選擇>> 商品類目:沙發; 數量:共100頁 4400個商品; 篩選條件:天貓、銷量從高到低、價格500元以上。 項目目的 1. 對商品標題進行文本分析 詞雲可視化 2.
Python爬蟲 - 爬取百度html代碼前200行
http src mage bsp bubuko str 百度 爬蟲 圖片 Python爬蟲 - 爬取百度html代碼前200行 - 改進版, 增加了對字符串的.strip()處理 Python爬蟲 - 爬取百度html代碼前200行
Python 爬蟲爬取微信文章
微信爬蟲 爬取微信文章 爬取公眾號文章搜狗微信平臺為入口 地址:http://weixin.sogou.com/ --------------------------------------------------------------搜索關鍵詞“科技”對比網址變化情況查看網址http://wei