国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

以 jQuery 之名 - 爬蟲利器 PyQuery

開發 開發工具
如果說到 jQuery,熟悉前端的同學肯定不陌生,它可以簡單優雅地對 html 文件進行定位、選擇、移動等操作。而本文的主角 pyquery,支持以 jquery 的方式對 html 進行操作。

很多讀者在學習了 Python 之后都想做一些爬蟲程序,去網上采集數據或完成一些自動化操作。因此,我們也制作了一套爬蟲實戰課程,目前正在***的完善中,很快將和各位見面。

等不及的朋友,可以先來看看這個類似于 bs4 的網頁分析模塊——PyQuery。

如果說到 jQuery,熟悉前端的同學肯定不陌生,它可以簡單優雅地對 html 文件進行定位、選擇、移動等操作。而本文的主角 pyquery,支持以 jquery 的方式對 html 進行操作。因此非常適合有前端或 js 基礎的同學使用。

廢話不多說,一邊看文章,一邊打開編輯器,跟著我一探究竟吧。

1. 安裝

安裝過程比較簡單

  1. pip install pyquery 

2. 入門使用

接下來,我們以分析簡書首頁文章為例,簡單梳理 pyquery 的部分函數 。

(1)  導入相關的庫

分別導入 網絡請求庫 requests、以及 pyquery 。

  1. import requests 
  2. import pyquery 

(2) 向 pyquery 導入數據

與 bs4 一樣,處理網頁首先建立一個 pyquery 對象。通過抓取到的網頁內容初始化即可。

  1. # 請求簡書地址 
  2. url = 'http://www.jianshu.com/' 
  3. req = requests.get(url) 
  4. page = req.text 
  5. # 導入 pyquery 處理 
  6. pq = pyquery.PyQuery(page) 

pyquery 也可以直接調用內置的網絡請求模塊,從網址初始化:

  1. url = 'http://www.baidu.com' 
  2. pq = pyquery.PyQuery(urlurl=url) 

(3) 定位元素

pyquery 提供多種定位元素的方法,這里簡單介紹三種,直接定位、根據 id 定位 ,根據 class 定位。

根據 html 標簽直接定位:

  1. # 直接定位 head 標簽 
  2. pqpq_head = pq('head') 

以上代碼就是獲取 html 中 < head>.......< /head> 標簽內的內容。

根據 id 定位:

在簡書首頁源代碼中可找到這么一段

以 jQuery 之名 - 爬蟲利器 PyQuery

根據 id 定位找到這個 li 標簽,代碼如下:

  1. # 定位 id = note-11772642 的 li 標簽 
  2. pqpq_id = pq('#note-11772642') 

以上代碼獲取 id 名為 note-11772642 的標簽,需要注意的是查詢 id 時添加 # 前綴,這是 css 選擇器語法。

根據 class 定位:

同樣以剛才的為例

我們根據 class=have-img 去獲取這個 li 標簽

  1. # 定位 class = have-img 的 li 標簽 
  2. pqpq_class = pq('.have-img') 

注意的是查詢 class 時添加 . 前綴,這也是 css 選擇器語法。

(4) 索引標簽

在上一節的***有個小問題,我們知道 head 標簽在 html 中只有一個,而 class 名為 have-img 的 li 標簽可能有多個,我們該

如何遍歷所有的 li 標簽呢? 又該如何單獨的取某一個 li 呢?

首先我們可以逐個遍歷

  1. # 遍歷所有 class = have-img 的 li 標簽 
  2. for li in pq_class:     
  3.     # 獲取每一個 li 標簽 
  4.     pqpq_li = pq(li) 

我們可以索引某一個 li 標簽

使用.ep(index) 函數。

  1. # 獲取***個 li 標簽 
  2. li_first = pq_class.ep(0) 
  3. # 獲取第二個 li 標簽 
  4. li_second = pq_class.ep(1) 

(5) 尋找標簽

同樣回到剛剛的那張圖

在上一步,我們已經找到了所有的 li 標簽,也知道如何取索引其中的元素,但我們現在要準確定位到某一個元素,比如上圖中 id = note-11772642 這個 li 標簽。

這時候 filter(selecter) 就派上了用場

  1. li_spec = pq_class.filter('#note-11772642') 

這樣我們就找到了指定的這個 li 標簽,需要注意的是, filter 函數只能在同一級標簽中尋找,比如在這里只能過濾 li 標簽,而不能定位 li 標簽下的 a 標簽、 div 標簽等。

當然,針對這種情況, pyquery 為我們提供了另外一個函數 find(selector),該函數用于尋找子節點,繼續以上圖為例,尋找該特定 li 標簽下的 p 標簽

  1. p_tag = li_spec.find('p') 

(6) 提取屬性與值

以上我們講了許多關于標簽的知識,現在來談談怎么獲取標簽內的屬性和標簽包裹的文本,實際的爬蟲項目中,通常這是最重要的一步,比如從 a 標簽中獲取鏈接、從 li 標簽或者 p標簽中獲取文本。

獲取屬性:

使用 attr() 函數,以我們之前獲取的 li 標簽為例,獲取其中的 id 屬性

  1. # 獲取 id 屬性的方法 
  2. li_specli_spec_id = li_spec.attr('id') 
  3. li_specli_spec_id_2 = li_spec.attr.id 
  4. li_specli_spec_id_3 = li_spec.attr['id'] 

獲取文本:

使用 text()函數, 以我們之前得到的 p 標簽為例,獲取其中的文本。

  1. string = p_tag.text() 

到此,在爬蟲中會使用到的函數就是這些了。

3. 小結

pyquery 還擁有操作文檔樹的能力,本篇文章著重介紹與爬蟲相關的知識,所以就不再此詳細敘述了,有興趣的同學移步官方文檔:

http://pythonhosted.org/pyquery/index.html

***,既然我們都分析了簡書首頁,請大家根據所學內容爬取簡書首頁所有的文章標題和文章鏈接,然后打印出來吧,像下圖一樣

【本文是51CTO專欄機構“Crossin的編程教室”的原創文章,轉載請通過微信公眾號(rossincode)聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2013-11-25 09:22:07

2014-11-04 09:14:58

2016-03-03 14:48:51

F5應用交付

2017-05-27 20:00:30

Python爬蟲神器PyQuery

2012-10-16 10:41:31

云計算應用架構

2009-01-27 10:38:00

思杰虛擬化XenSource

2018-05-14 14:34:50

閑置交易

2022-06-27 09:23:14

爬蟲frida rpc加密

2014-10-27 20:50:18

2021-10-28 19:06:01

裁員運營商編制

2022-03-10 16:01:29

Playwright開源

2021-07-13 18:21:00

鯤鵬

2019-11-27 18:42:00

飛利浦Fidelio

2019-11-28 18:39:00

飛利浦Fidelio

2014-02-11 15:23:19

銳捷網絡公益

2025-06-24 17:42:47

2013-11-25 10:54:48

IT技術周刊

2015-09-02 11:57:56

點贊
收藏

51CTO技術棧公眾號

欧美美女15p| 国产青青视频| 日韩精品一区二区在线视频| 丁香六月激情网| 国产一级特黄a大片免费| 国产成免费视频| 日韩国产福利| 日韩大片在线永久免费观看网站| 男女免费观看在线爽爽爽视频| 一区二区三区短视频| 国产精品3区| 精品国产91久久久久久浪潮蜜月| 偷拍一区二区| 欧美色图麻豆| 看片网站欧美日韩| 91在线小视频| 一区二区视频在线看| 欧美色图12p| 亚洲欧美精品一区二区| 欧美精品做受xxx性少妇| 国产精品欧美一区二区| 精品日产一区2区三区黄免费| 亚洲人成人77777线观看| 国产男女在线观看| 在线视频毛片| 免费在线观看av电影| 9.1麻豆精品| 婷婷综合久久| 毛片不卡一区二区| 中文字幕二三区不卡| 在线欧美小视频| 国产视频精品自拍| 91产国在线观看动作片喷水| 成人国产一区二区| 国产欧美精品aaaaaa片| 日本1区2区3区中文字幕| 国产欧美黑人| 国产不卡精品| 欧美视频在线观看| 岛国一区二区在线观看| 一区二区三区在线免费播放| 日韩一区二区三区观看| 久久成人一区二区| 成人伊人精品色xxxx视频| 亚洲欧洲三级| 四虎免费av| 粗大黑人巨茎大战欧美成人| 国产精品一区二区美女视频免费看| 91精品一区二区三区综合在线爱| 免费国产亚洲视频| 亚洲女女做受ⅹxx高潮| 精品美女在线观看| 18性欧美xxxⅹ性满足| 欧美福利精品| 亚欧激情乱码久久久久久久久| 老司机午夜在线| 亚洲高清999| 国产精品日韩| 国产精品久久久久久久久免费桃花 | 8x福利精品第一导航| 久久精品美女视频网站| 亚洲自拍偷拍视频| 国产 福利 在线| 免费a级毛片在线观看| 久久亚洲国产精品尤物| 欧美日韩亚洲一区| 久久久久久97三级| 日韩一区二区电影网| 日韩av色在线| 99久久免费观看| freemovies性欧美| 盗摄牛牛av影视一区二区| 日本欧美韩国一区三区| 亚洲成人在线免费| 日韩色av导航| 日本一区二区三区免费看| 国产精品666| 国产极品一区| 久久精品一区二区三区中文字幕| 亚洲国产电影在线观看| 精品对白一区国产伦| 国产精品视频资源| 欧美日韩精品在线一区二区 | 亚洲国产精品成人| 久久久久久久久久久电影| 欧美xingq一区二区| 国产在线拍揄自揄视频不卡99 | 日韩在线第三页| 超碰在线资源| 亚洲人metart人体| 国产片一区二区| 亚洲成人av片在线观看| 国产日韩欧美在线播放| 妞干网在线免费视频| 国产羞羞视频在线播放| 日韩理论电影大全| 久久女同精品一区二区| 日韩av在线免播放器| 国产精品99久久久久久久| 高潮白浆视频| 国产精品视频一区视频二区| 久久激五月天综合精品| 欧美三区在线观看| 国产精品久久久久久五月尺| 成人3d动漫一区二区三区| 中文字幕资源网在线观看免费| 在线成人黄色| 午夜av电影一区| 欧美黄色三级网站| heyzo亚洲| 僵尸再翻生在线观看免费国语| 伊人激情综合| 午夜精品视频在线观看| 91精品国产九九九久久久亚洲| 3d动漫一区二区三区| 婷婷电影在线观看| 亚洲自拍另类| 在线观看免费成人| 国产精品视频大全| 国产经典av| 91夜夜蜜桃臀一区二区三区| 国产成a人亚洲精品| 亚洲变态欧美另类捆绑| 国产精成人品localhost| 一二三区在线观看| 成人av国产| 亚洲欧美二区三区| 欧美激情中文网| 激情伊人五月天| 国产一二在线播放| 日本欧美一区二区三区乱码| 欧美老人xxxx18| 成人免费视频观看视频| 爽爽视频在线观看| 色欧美自拍视频| 亚洲一区二区三区国产| 2019中文字幕在线观看| 成人免费看黄网址| 超碰成人97| 欧美国产97人人爽人人喊| 九色精品美女在线| aaaaaa亚洲| 天堂久久av| 国产日本亚洲高清| 欧美精品video| 亚洲黄色av网址| 亚洲精品a区| 国产精品欧美综合在线| 性欧美xxxx交| 91传媒在线观看| 国产欧美日韩影院| 亚洲你懂的在线视频| 国产91在线播放| 日本免费看黄色| 成人在线免费视频观看| 午夜成人免费视频| 成人中文字幕+乱码+中文字幕| 在线观看视频你懂的| 欧美一区二区三区久久精品| 色88888久久久久久影院按摩| 99re在线视频观看| 9色在线视频| 久久一区视频| 日韩成人中文字幕| 国产成人生活片| 成人免费视频观看| 91丨九色丨国产丨porny| 久久69精品久久久久久久电影好| 成人精品视频一区二区| 精品少妇3p| 一区二区三区日韩欧美精品 | 热久久一区二区| 亚洲激情国产精品| 高清无码一区二区在线观看吞精| 日本综合视频| 久久久久久麻豆| 欧洲成人免费视频| 一级毛片在线看| 亚洲高清网站| 精品国产露脸精彩对白| 日韩精品一区二区在线视频| 国产一精品一av一免费爽爽| 国产精品不卡在线观看| 国产精品偷伦视频免费观看国产 | 国内自拍视频一区| 偷拍一区二区| 精品动漫一区二区三区| 国产精品乱码视频| 调教一区二区| 粉嫩av一区二区三区粉嫩| 欧美精品生活片| 色婷婷av金发美女在线播放| 午夜精品免费| 精品欧美一区二区三区精品久久| 三级在线免费观看| jizz18欧美18| 亚洲成av人综合在线观看| 久久亚裔精品欧美| 高清av一区二区三区| 国产精品国产三级国产aⅴ原创|