日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分分钟爬取51job

發布時間:2024/1/1 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分分钟爬取51job 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

爬取前程無憂(一)

  • 步驟:
  • 1.解析url
  • 2.獲取url上的內容
  • 3.對獲取的內容進行解析
  • 4.對解析后的內容進行存儲

步驟:

1.解析url

首先,明確我們的目的:爬取51上所有的python崗位的相關職位信息
這是我們的原始url:

https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,3.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=

當然我們的有效url僅有:

https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,3.html

根據我們的觀察一共有六頁
我們打開第二頁,第三頁對比一下

第一頁:https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,1.html 第二頁:https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,2.html 第三頁:https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,3.html

ok,我們可以很明顯的發現規律,
url中python和頁碼,沒錯這就是我們需要處理的第一個點
首先將我們的URL進行一個完整的表述,我們可以這樣做:
在這里我們的key可以采取從屏幕上進行獲取

key = input('請輸入想查詢的職業/崗位:' ) for i in range(6):url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,' + str(key) + ',2,' + str(i+1) + '.html'

這里我們可以輸出看一下我們的url

ok,我們的url就這樣處理好了

2.獲取url上的內容

我們已經獲取了所有的網頁地址,接下來我們使用requests庫的get請求來獲取網頁上的內容,同時給我們的爬蟲加上一點小小的偽裝,
首先要導入庫

import requests

然后使用requests庫的get請求來得到我們的網頁源碼,

response = requests.get(url=url,headers=headers)

response里面就包含了我們需要的內容,我們可以查看其內容

print(response.status_code) # 打印狀態碼,狀態碼200表示ok print(response.url) # 打印請求url print(response.headers) # 打印頭信息 print(response.cookies) # 打印cookie信息 print(response.text) # 以文本形式打印網頁源碼 print(response.content) # 以字節流形式打印

headers則是請求頭,是區分瀏覽器和程序的必要元素,

更多的請求頭信息可以查看大佬:https://blog.csdn.net/gklcsdn/article/details/101522169

如何查看我們的請求頭呢,我們用Google瀏覽器打開我們的網頁,按下F12進行元素檢查,然后你就可以看到一串前端代碼,

我們找到network,點進去,然后刷新我們的頁面,點開文件,這里就可以看到很多的信息了,
然后我們找到我們需要的進行添加,

3.對獲取的內容進行解析

這里我們使用xpath模塊來進行解析

response.encoding = 'gbk' tree = etree.HTML(response.text) ## 解析HTML文檔,返回根節點對象 divs = tree.xpath('//div[@class = "dw_table"]/div[@class = "el"]')

tree.xpath:在源碼中找出我們所需要的信息(直接找我們需要的即可,注意)

來一個for循環,將我們得到的每一個值都進行保存。

gszw = div.xpath('.//p//a/@title')[0] gsmc = div.xpath('.//span[@class = "t2"]/a/@title')[0] gzdd = div.xpath('.//span[@class = "t3"]/text()')[0] gzxc = div.xpath('.//span[@class = "t4"]/text()')[0] fbsj = div.xpath('.//span[@class = "t5"]/text()')[0]

至此,我們就已經得到了全部的數據

4.對解析后的內容進行存儲

我們獲取數據自然是為了將數據進行保存,而后進行分析,這里簡單的將數據保存為json文件和csv文件

完整代碼:

import requests from lxml import etree import json,csv,timeif __name__ == '__main__':key = input('請輸入想查詢的職業/崗位:' )for i in range(6):url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,' + str(key) + ',2,' + str(i+1) + '.html'time.sleep(1)data = []fp = open('./51job_python.json',mode='a',encoding='utf-8')fp2 = open('./51job2_python.csv',mode='a',encoding='utf-8')headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}response = requests.get(url=url,headers=headers)response.encoding = 'gbk'tree = etree.HTML(response.text)divs = tree.xpath('//div[@class = "dw_table"]/div[@class = "el"]')try:for div in divs:gszw = div.xpath('.//p//a/@title')[0]gsmc = div.xpath('.//span[@class = "t2"]/a/@title')[0]gzdd = div.xpath('.//span[@class = "t3"]/text()')[0]gzxc = div.xpath('.//span[@class = "t4"]/text()')[0]fbsj = div.xpath('.//span[@class = "t5"]/text()')[0]d = dict()d['職位'] = gszwd['公司'] = gsmcd['地區'] = gzddd['薪酬'] = gzxcd['時間'] = fbsjdata.append(d)if gzxc == None:gzxc = 'mianyi'print("一條信息獲取成功")reslit = json.dumps(data,ensure_ascii = False)fp.write(reslit)fp2.write('\n\n職位:%s。\n公司:%s。\n地區:%s。\n薪酬:%s。\n時間:%s'%(gszw,gsmc,gzdd,gzxc,fbsj))except Exception as e:fp2.write('\n\n職位:%s。\n公司:%s。\n地區:%s。\n薪酬:%s。\n時間:%s' % (gszw, gsmc, gzdd, '面議', fbsj))fp.close()fp2.close()

至于為什么是前程無憂,而不是Boss和智聯

51job:爬取沒有限制
boss直聘:需要設置IP,重點設置動態IP
智聯:動態抓取,重點獲取數據接口

嗯,任重道遠。

總結

以上是生活随笔為你收集整理的分分钟爬取51job的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。