欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python中使用cookielib和urllib2配合PyQuery抓取網(wǎng)頁信息

 更新時(shí)間:2015年04月25日 10:53:52   作者:程康  
這篇文章主要介紹了在Python中使用cookielib和rllib2配合PyQuery抓取網(wǎng)頁信息的教程,主要是利用PyQuery解析HTML來實(shí)現(xiàn),需要的朋友可以參考下

剛才好無聊,突然想起來之前做一個(gè)課表的點(diǎn)子,于是百度了起來。

剛開始,我是這樣想的:在寫微信墻的時(shí)候,用到了urllib2【兩行代碼抓網(wǎng)頁】,那么就只剩下解析html了。于是百度:python解析html。發(fā)現(xiàn)一篇好文章,其中介紹到了pyQuery。

pyQuery 是 jQuery 在 Python 中的實(shí)現(xiàn),能夠以 jQuery 的語法來操作解析 HTML 文檔。使用前需要安裝,Mac安裝方法如下:

sudo easy_install pyquery

OK!安裝好了!

我們來試一試吧:

from pyquery import PyQuery as pq
html = pq(url=u'http://seam.ustb.edu.cn:8080/jwgl/index.jsp')
#現(xiàn)在已經(jīng)獲取了本科教學(xué)網(wǎng)首頁的html
classes = html('.haveclass')
#通過類名獲取元素
#如果你對(duì)jQuery熟悉的話,那么你現(xiàn)在肯定明白pyQuery的方便了
更多用法參見pyQuery API

好像學(xué)會(huì)了使用pyQuery就能抓課表了呢,但是,如果你直接用我的源碼,肯定會(huì)出錯(cuò)。因?yàn)檫€沒有登錄啊!

所以,在運(yùn)行這一行抓取正確的代碼之前,我們需要模擬登錄本科教學(xué)網(wǎng)。這個(gè)時(shí)候,我想起來urllib有模擬post請(qǐng)求的函數(shù),于是我百度了:urllib post。

這是一個(gè)最簡(jiǎn)的模擬post請(qǐng)求例子:

import urllib
import urllib2
import cookielib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)')]
urllib2.install_opener(opener)
req = urllib2.Request("http://seam.ustb.edu.cn:8080/jwgl/Login",urllib.urlencode({"username":"41255029","password":"123456","usertype":"student"}))
req.add_header("Referer","http://xxoo.com")
resp = urllib2.urlopen(req)
#這里面用到了cookielib,我不太清楚,以后慢慢了解吧
#還用到了urllib和urllib2,urllib2大概是urllib的擴(kuò)展包【233想到了三國(guó)殺

在這個(gè)最簡(jiǎn)的實(shí)例里,用我的校園網(wǎng)賬號(hào)向登錄頁面提交表單數(shù)據(jù),模擬登錄。

現(xiàn)在,我們已經(jīng)登錄了本科教學(xué)網(wǎng),然后結(jié)合之前的pyQuery解析html就可以獲取網(wǎng)頁內(nèi)的課表了。

html = pq(url=u'http://seam.ustb.edu.cn:8080/jwgl/index.jsp')
self.render("index.html",data=html('.haveclass'))

結(jié)果展示如圖:

最后:

我發(fā)現(xiàn),pyQuery不但用于解析html非常方便,而且可以作為跨域抓取數(shù)據(jù)的工具,NICE!!!

希望對(duì)大家有幫助。

  • pandas 時(shí)間格式轉(zhuǎn)換的實(shí)現(xiàn)

    pandas 時(shí)間格式轉(zhuǎn)換的實(shí)現(xiàn)

    這篇文章主要介紹了pandas 時(shí)間格式轉(zhuǎn)換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python生成詞云的實(shí)現(xiàn)方法(推薦)

    python生成詞云的實(shí)現(xiàn)方法(推薦)

    下面小編就為大家?guī)硪黄猵ython生成詞云的實(shí)現(xiàn)方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python定時(shí)任務(wù)APScheduler安裝及使用解析

    Python定時(shí)任務(wù)APScheduler安裝及使用解析

    這篇文章主要介紹了Python定時(shí)任務(wù)APScheduler安裝及使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 一文教你用Python中progress庫實(shí)現(xiàn)進(jìn)度條

    一文教你用Python中progress庫實(shí)現(xiàn)進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了如何通過Python中的progress庫實(shí)現(xiàn)進(jìn)度條的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • Python PyAutoGUI實(shí)現(xiàn)自動(dòng)化任務(wù)應(yīng)用場(chǎng)景示例

    Python PyAutoGUI實(shí)現(xiàn)自動(dòng)化任務(wù)應(yīng)用場(chǎng)景示例

    這篇文章主要為大家介紹了Python PyAutoGUI實(shí)現(xiàn)自動(dòng)化任務(wù)應(yīng)用場(chǎng)景示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • python利用itertools生成密碼字典并多線程撞庫破解rar密碼

    python利用itertools生成密碼字典并多線程撞庫破解rar密碼

    這篇文章主要介紹了python利用itertools生成密碼字典并多線程撞庫破解rar密碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python計(jì)算三角函數(shù)之a(chǎn)sin()方法的使用

    Python計(jì)算三角函數(shù)之a(chǎn)sin()方法的使用

    這篇文章主要介紹了Python計(jì)算三角函數(shù)之a(chǎn)sin()方法的使用,是Python入門的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python3中超級(jí)好用的日志模塊-loguru模塊使用詳解

    python3中超級(jí)好用的日志模塊-loguru模塊使用詳解

    loguru默認(rèn)的輸出格式是上面的內(nèi)容,有時(shí)間、級(jí)別、模塊名、行號(hào)以及日志信息,不需要手動(dòng)創(chuàng)建?logger,直接使用即可,另外其輸出還是彩色的,看起來會(huì)更加友好,這篇文章主要介紹了python3中超級(jí)好用的日志模塊-loguru模塊使用詳解,需要的朋友可以參考下
    2022-11-11
  • python使用datetime.utcnow()問題解析

    python使用datetime.utcnow()問題解析

    這篇文章主要介紹了python使用datetime.utcnow()問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 最新評(píng)論