<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          爬蟲神器之 PyQuery 實用教程(一)

          共 1827字,需瀏覽 4分鐘

           ·

          2019-10-08 23:20

          咪哥雜談

          07e999064681972fac8a5dfc676c271d.webp

          本篇閱讀時間約為 4 分鐘。接下來的教程,短小而精悍。

          1

          前言


          今年 5 月份的時候,后臺有小伙伴留言,詢問過 PyQuery 的用法,當(dāng)時沒怎么接觸過 PyQuery ,只是大致看了下官方文檔,了解到它與我們常用的 BeautifulSoup 庫相似。也是作為提取網(wǎng)頁源代碼的一款好用 Python 模塊。
          最近在研究 PySpider 框架,一個國人寫的好用框架,其中在提取網(wǎng)頁節(jié)點元素的時候,可以利用 PyQuery 來高效使用。
          今天就來的介紹下關(guān)于 PyQuery 的一些實用方法。


          2

          安裝及詳情介紹


          開始之前,先要安裝下第三方庫。


          pip install pyquery


          來看下官方定義:

          pyquery?allows?you?to?make?jquery?queries?on?xml?documents.?The?API?is?as?much?as?possible?the?similar?to?jquery.?pyquery?uses?lxml?for?fast?xml?and?html?manipulation.

          PyQuery官方文檔


          大致意思:PyQuery 允許你在 xml 文檔結(jié)構(gòu)去進(jìn)行 jQuery 的語法查詢。它的 api 使用方法與 jQuery 相似度很高。


          看完官網(wǎng)后,再結(jié)合名字,但凡是接觸過前端的同學(xué),一定可以聯(lián)想到j(luò)Query,這里在普及下 jQuery。


          jQuery是一個快速、簡潔的JavaScript框架。它的本身語法可以非常簡潔的提取到 HTML 元素的節(jié)點。


          而?PyQuery 則是 Python 仿照 jQuery 來實現(xiàn)。熟悉 jQuery 的同學(xué),再去學(xué)習(xí) PyQuery 簡直 so easy。


          3

          實戰(zhàn)環(huán)境準(zhǔn)備


          廢話不多說,直接開始搞實戰(zhàn)。


          剛經(jīng)歷七天小長假,就以"窮游網(wǎng)"為例,來用它講解下 PyQuery 如何獲取頁面的元素節(jié)點。


          打開窮游網(wǎng),隨便選了個地點,以"日本"為例。


          https://place.qyer.com/japan/citylist-0-0-1/

          窮游網(wǎng)


          6389ebda300183ac685b36e9c6c30012.webp


          可以看到上圖中,列出了日本全部城市以及區(qū)域。爬它!


          4

          PyQuery獲取原網(wǎng)頁代碼


          PyQuery 內(nèi)置提供了一個方法,可以直接對網(wǎng)頁進(jìn)行模擬請求。


          from pyquery import PyQuery as pqdoc?=?pq(url='https://place.qyer.com/japan/citylist-0-0-1/')

          ?

          導(dǎo)入 PyQuery 并且命名為 pq。為了命名簡短,所以調(diào)用使用 pq 來操作。當(dāng)參數(shù)指定為 url 時,pq 底層封裝了請求網(wǎng)址的動作。


          doc?=?pq(url='https://place.qyer.com/japan/citylist-0-0-1/')


          上述代碼的底層執(zhí)行機制,類似于這樣:


          url = 'https://place.qyer.com/japan/citylist-0-0-1/'doc = pq(requests.get(url).text)


          讓我們來改寫代碼打印下,看看 doc 得到的內(nèi)容,以及它的類型是什么:


          from pyquery import PyQuery as pqdef spider_travel():    doc = pq(url='https://place.qyer.com/japan/citylist-0-0-1/')    print(doc)    print(type(doc))spider_travel()


          結(jié)果:


          bfd495dcdede5fe554db99bf6fd70f65.webp

          2a65eb869c129db62495ffeac317f3d3.webp


          doc打印的結(jié)果,大家可以看到,是將 HTML 源代碼以文本的形式返回了。而 doc 的類型,則是?PyQuery?。


          后續(xù)想從 HTML 源碼中提取我們想要的內(nèi)容,都需要此類來進(jìn)行操作。也就是通過 doc 變量來進(jìn)行操作,提取。


          5

          總結(jié)


          好了,簡單的回顧下。


          上面介紹了 PyQuery 庫的用途以及如何對一個網(wǎng)站發(fā)起請求,以及它最重要的類。下一篇重點介紹如何提取元素節(jié)點。


          本篇文章就到這里!是不是很簡短。畢竟現(xiàn)在大家閱讀的時間越來越少了,而真正能看進(jìn)去文章的也越來越少。所以將長篇大論的文章,分隔縮短,分成好幾篇來介紹!你覺得這樣是否合適呢?





          ▼往期精彩回顧▼爬取B站視頻排名第一《祖國大好河山》1W+彈幕,得出一份詞頻詞云圖Python玩轉(zhuǎn)高德地圖API(二)
          Python玩轉(zhuǎn)高德地圖API(一)



          ac423481d4d2954fdca3ee9b32224d5b.webp你點的每個在看,我都認(rèn)真當(dāng)成了喜歡
          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本干屄 | 中国黄色视频一级片 | 操逼视频在线观看视频 | 夜色五月丁香久久 | 中文字幕日产A片在线看 |