一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

五步教會你用python爬蟲神器PyQuery?。▋?nèi)含詳細(xì)步驟和代碼)

 只怕想不到 2019-09-24

前言:

今天為大家?guī)淼膬?nèi)容,是五步教會你用python爬蟲神器PyQuery?。▋?nèi)含詳細(xì)步驟和代碼),在這里還是要啰嗦下,為了有更好的觀賞性,大部分代碼用圖片的方式呈現(xiàn)出來!喜歡的話不忘點贊關(guān)注不迷路哦!

PyQuery庫官方文檔

  • 初始化為PyQuery對象
  • 常用的CCS選擇器
  • 偽類選擇器
  • 查找標(biāo)簽
  • 獲取標(biāo)簽信息

初始化為PyQuery對象

相當(dāng)于BeautifulSoup庫的初識化方法,將html轉(zhuǎn)化為BeautifulSoup對象。

bsObj = BeautifulSoup(html, 'html.parser')

PyQuery庫也要有自己的初始化。

1 將字符串初始化

from pyquery import PyQuery as pq

#初始化為PyQuery對象doc = pq(html)print(type(doc))print(doc)

返回

2 將html文件初始化

#filename參數(shù)為html文件路徑

test_html = pq(filename = 'test.html')print(type(test_html))print(test_html)

返回

3 對網(wǎng)址響應(yīng)進(jìn)行初始化

response = pq(url = 'https://www.baidu.com')

print(type(response))print(response)

返回

提示:接下來就是自行發(fā)揮了,具體操作很簡單就不做多介紹了!

然后,接著往下看!

二、常用的CCS選擇器

打印id為container的標(biāo)簽

print(doc('#container'))

print(type(doc('#container')))

返回

打印class為object-1的標(biāo)簽

print(doc('.object-1'))

返回

打印標(biāo)簽名為body的標(biāo)簽

print(doc('body'))

返回

多種css選擇器使用

print(doc('html #container'))

返回

三、偽類選擇器

偽類nth

返回

  • 大法
  • Python
  • 好玩
  • contains

    #找到含有Python的li標(biāo)簽

    print(pseudo_doc('li:contains('Python')'))#找到含有好的li標(biāo)簽print(pseudo_doc('li:contains('好')'))

    返回

  • Python
  • 好玩
  • 四、查找標(biāo)簽

    按照條件在Pyquery對象中查找符合條件的標(biāo)簽,類似于BeautifulSoup中的find方法。

    打印id=container的標(biāo)簽

    print(doc.find('#container'))

    返回

    返回

    2 子輩標(biāo)簽-children方法

    #id=container的標(biāo)簽的子輩標(biāo)簽

    container = doc.find('#container')print(container.children())

    返回

    3 父輩標(biāo)簽-parent方法

    object_2 = doc.find('.object-2')

    print(object_2.parent())

    返回

    4 兄弟標(biāo)簽-siblings方法

    object_2 = doc.find('.object-2')

    print(object_2.siblings())

    返回

    五、獲取標(biāo)簽的信息

    定位到目標(biāo)標(biāo)簽后,我們需要標(biāo)簽內(nèi)部的文本或者屬性值,這時候需要進(jìn)行提取文本或?qū)傩灾挡僮?/p>

    1 標(biāo)簽屬性值的提取

    .attr() 傳入 標(biāo)簽的屬性名,返回屬性值

    object_2 = doc.find('.object-2')

    print(object_2.attr('class'))

    返回

    object-2

    2 標(biāo)簽內(nèi)的文本

    .text()

    返回

    簡單好用的 PyQuery Hello World! Python 大法 好

    返回

    Python

    Hello World! Python 大法 好

    tips:如果我只想獲得Hello World這個,不想得到其他的文本,可以使用remove方法將li標(biāo)簽去掉,然后再使用text方法

    container = docs.find('#container')

    container.remove('li')print(container.text())

    返回

    Hello World!

    pyquery一些自定義的用法

    訪問網(wǎng)址

    PyQuery與BeautifulSoup對比,我們會發(fā)現(xiàn)PyQuery可以對網(wǎng)址發(fā)起請求。 比如

    from pyquery import PyQuery

    PyQuery(url = 'https://www.baidu.com')

    opener參數(shù)

    這是PyQuery對百度網(wǎng)址進(jìn)行請求,并將請求返回的響應(yīng)數(shù)據(jù)處理為PyQuery對象。一般pyquery庫會默認(rèn)調(diào)用urllib庫,如果想使用selenium或者requests庫,可以自定義PyQuery的opener參數(shù)。

    opener參數(shù)作用是告訴pyquery用什么請求庫對網(wǎng)址發(fā)起請求。常見的請求庫如urllib、requests、selenium。這里我們自定義一個selenium的opener。

    這時候我們就能對PyQuery對象進(jìn)行操作,提取有用的信息。具體請看上次的分享,如果想了解更多的功能,pyquery文檔寫的不怎么詳細(xì),好在基本跟jQuery功能吻合,我們?nèi)绻胗煤胮yquery,需要查看jQuery文檔。

    cookies、headers

    在requests用法中,一般為了訪問網(wǎng)址更加真實,模仿成瀏覽器。一般我們需要傳入headers,必要的時候還需要傳入cookies參數(shù)。而pyquery庫就有這功能,也能偽裝瀏覽器。

    讓你的selenium帶上pyquery功能

    讓driver訪問的網(wǎng)址得到的網(wǎng)頁直接變?yōu)镻yQuery對象,更方便提取數(shù)據(jù)

    返回

    著作權(quán)歸作者所有

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      亚洲五月婷婷中文字幕| 国产99久久精品果冻传媒| 国产日韩精品欧美综合区| 国产一区二区三区午夜精品| 亚洲精品偷拍一区二区三区 | 隔壁的日本人妻中文字幕版| 日韩成人动画在线观看| 91免费精品国自产拍偷拍| 亚洲一区二区三区四区性色av| 亚洲熟妇熟女久久精品| 午夜福利视频六七十路熟女| 久久本道综合色狠狠五月| 激情亚洲内射一区二区三区| 99秋霞在线观看视频| 人妻露脸一区二区三区| 91精品国产综合久久不卡| 亚洲免费视频中文字幕在线观看| 日韩美成人免费在线视频| 国产成人精品一区二区三区| 亚洲人午夜精品射精日韩| 欧美一区二区在线日韩| 欧美做爰猛烈叫床大尺度| 日韩精品少妇人妻一区二区| 99国产高清不卡视频| 久热久热精品视频在线观看| 麻豆看片麻豆免费视频| 国产又大又硬又粗又黄| 精品老司机视频在线观看| 午夜福利视频偷拍91| 色婷婷国产精品视频一区二区保健| 欧美中文日韩一区久久| 一区二区在线激情视频| 午夜久久精品福利视频| 老司机精品国产在线视频| 在线懂色一区二区三区精品| 中文字幕中文字幕在线十八区 | 国产肥女老熟女激情视频一区| 好吊色免费在线观看视频| 国产中文字幕一二三区| 国产女性精品一区二区三区| 国产一区欧美一区日韩一区|