<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • Python中用scrapy框架爬取拉勾網(wǎng)招聘信息-創(chuàng)新互聯(lián)

            創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

            創(chuàng)新互聯(lián)是專業(yè)的南京網(wǎng)站建設(shè)公司,南京接單;提供做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行南京網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

            小編這次要給大家分享的是Python中用scrapy框架爬取拉勾網(wǎng)招聘信息,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

            本文實例為爬取拉勾網(wǎng)上的python相關(guān)的職位信息, 這些信息在職位詳情頁上, 如職位名, 薪資, 公司名等等.

            分析思路

            分析查詢結(jié)果頁

            在拉勾網(wǎng)搜索框中搜索'python'關(guān)鍵字, 在瀏覽器地址欄可以看到搜索結(jié)果頁的url為: 'https://www.lagou.com/jobs/list_python&#63;labelWords=&fromSearch=true&suginput=', 嘗試將&#63;后的參數(shù)刪除, 發(fā)現(xiàn)訪問結(jié)果相同.

            打開Chrome網(wǎng)頁調(diào)試工具(F12), 分析每條搜索結(jié)果(即每個職位)在html中所處的元素定位, 發(fā)現(xiàn)每條結(jié)果都在<ul class="item_con_list">下的li標簽中.

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            因為我們需要每個職位的具體信息, 因此需要獲取到每條搜索結(jié)果的詳情url, 即點擊搜索結(jié)果后進入的詳情頁的url.

            繼續(xù)查看li標簽中的元素, 找到想要的詳情url, 找到后的url為: href=https://www.lagou.com/jobs/6945237.html&#63;show=b6e8e778fcae4c2aa2111ba58f9ebfa0

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            查看其它搜索結(jié)果的詳情url, 發(fā)現(xiàn)其格式都為: href="https://www.lagou.com/jobs/{某個id}.html&#63;show={show_id}" rel="external nofollow"

            對于第一個ID, 每條結(jié)果的id都不一樣, 猜想其為標記每個職位的唯一id, 對于show_id, 每條結(jié)果的id都是一樣的, 嘗試刪除show參數(shù), 發(fā)現(xiàn)一樣可以訪問到具體結(jié)果詳情頁

            那么我們直接通過xpath提取到每個職位的第一個ID即可, 但是調(diào)試工具的elements標簽下的html是最終網(wǎng)頁展示的html, 并不一定就是我們訪問 https://www.lagou.com/jobs/list_python 返回的response的html, 因此點到Network標簽, 重新刷新一下頁面, 找到 https://www.lagou.com/jobs/list_python 對應(yīng)的請求, 查看其對應(yīng)的response, 搜索 'position_link'(即前面我們在elements中找到的每條搜索結(jié)果的詳情url), 發(fā)現(xiàn)確實返回了一個網(wǎng)址, 但是其重要的兩個ID并不是直接放回的, 而是通過js生成的, 說明我們想要的具體數(shù)據(jù)并不是這個這個請求返回的.

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            那么我們就需要找到具體是那個請求會返回搜索結(jié)果的信息, 一般這種情況首先考慮是不是通過ajax獲取的數(shù)據(jù), 篩選類型為XHR(ajax)的請求, 可以逐個點開查看response, 發(fā)現(xiàn) positionAjax.json 返回的數(shù)據(jù)中就存在我們想要的每條搜索結(jié)果的信息. 說明確實是通過ajax獲取的數(shù)據(jù), 其實點擊下一頁, 我們也可以發(fā)現(xiàn)地址欄url地址并沒有發(fā)生變化, 只是局部刷新了搜索結(jié)果的數(shù)據(jù), 也說明了搜索結(jié)果是通過ajax返回的.

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            分析上面ajax的response, 查看其中是否有我們想要的職位ID, 在preview中搜索之前在elements中找到的某個職位的url的兩個ID, 確實兩個ID都存在response中, 分析發(fā)現(xiàn)第一個ID即為positionId, 第二個即為showId, 我們還可以發(fā)現(xiàn)response中返回了當前的頁碼數(shù)pageNo

            因此我們只需要訪問上面ajax對應(yīng)的url: https://www.lagou.com/jobs/positionAjax.json&#63;needAddtionalResult=false 就可以拿到我們想要的ID, 然后填入詳情url模板: https://www.lagou.com/jobs/{position_id}.html&#63;show={show_id}中即可訪問詳情頁了.

            但是當我們直接訪問 https://www.lagou.com/jobs/positionAjax.json&#63;needAddtionalResult=false 時 ,返回的結(jié)果卻是:  {"status":false,"msg":"您操作太頻繁,請稍后再訪問","clientIp":"139.226.66.44","state":2402}

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            經(jīng)過百度查詢后發(fā)現(xiàn)原來直接訪問上述地址是不行的, 這也是拉鉤的一個反爬策略, 需要我們帶上之前訪問查詢結(jié)果頁(https://www.lagou.com/jobs/list_python&#63;)的cookie才行, 因為我們這里使用的是scrapy框架, 該框架是能夠自帶上次請求的cookie來訪問下一個請求的, 所以我們這里不需要手動去添加cookie信息, 只需要首先訪問一下查詢結(jié)果頁就可以了. 即start_url = https://www.lagou.com/jobs/list_python

            此外發(fā)現(xiàn)這個ajax請求是通過POST方式發(fā)送的, 因此還需要分析它提交的form數(shù)據(jù), 在第一頁中有三條數(shù)據(jù)信息, first為true, pn為1 kd為python , 第二頁中first為false, pn為2, kd同樣為python, 且多了一個sid

            分析這四個參數(shù), 第一個first為表示是否是第一頁, 第二個pn為表示當前頁碼數(shù), 第三個kd為表示搜索的關(guān)鍵字, 第四個sid經(jīng)過和上面showId對比發(fā)現(xiàn)其值就為showId

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            分析職位詳情頁

            前面分析完后就可以拼接出職位詳情頁url了, 點開詳情頁, 同樣的思路分析我們想要的數(shù)據(jù)是不是就在詳情頁的url中, 這里想要職位名稱, 工資, 地點, 經(jīng)驗, 關(guān)鍵字, 公司信息等

            Python中用scrapy框架爬取拉勾網(wǎng)招聘信息

            在network中查找對應(yīng)的response, 發(fā)現(xiàn)數(shù)據(jù)確實就存在response中, 因此直接通過xpath就可以提取想要的數(shù)據(jù)了

            編寫爬蟲代碼

            具體代碼在github:

            這里只放出關(guān)鍵代碼

            創(chuàng)建scrapy項目

            scrapy startproject LaGou

            本文題目:Python中用scrapy框架爬取拉勾網(wǎng)招聘信息-創(chuàng)新互聯(lián)
            網(wǎng)站網(wǎng)址:http://www.jbt999.com/article19/doohgh.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)網(wǎng)站維護、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、外貿(mào)建站手機網(wǎng)站建設(shè)

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            成都定制網(wǎng)站網(wǎng)頁設(shè)計

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 天天爱天天干天天谢 | 狠狠狠干| 天天干,一区二区 | 豆花无码一区二区三区 | 久久精品一区二区三区四区 |