一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 在Python中使用cookielib和urllib2配合PyQuery抓取網(wǎng)頁(yè)信息

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

2020-06-12 10:37程康 Python

這篇文章主要介紹了在Python中使用cookielib和rllib2配合PyQuery抓取網(wǎng)頁(yè)信息的教程,主要是利用PyQuery解析HTML來實(shí)現(xiàn),需要的朋友可以參考下

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

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

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

?
1
sudo easy_install pyquery

OK!安裝好了!

我們來試一試吧:

?
1
2
3
4
5
6
7
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)首頁(yè)的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)求例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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)向登錄頁(yè)面提交表單數(shù)據(jù),模擬登錄。

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

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

結(jié)果展示如圖:

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

最后:

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费亚洲视频在线观看 | 俄罗斯bbbbbbxxxxxx | 深夜在线看 | 精品无码久久久久久久久 | 久久亚洲精品AV无码四区 | 日韩毛片在线视频 | 三级欧美在线 | h网站国产 | 二次元美女扒开内裤露尿口 | japonensis中国东北老人 | 精品久久免费观看 | 国产成人精品曰本亚洲77美色 | 果冻传媒和91制片厂网站软件 | 爱草视频| 糖心视频在线观看 | 国内精品一区二区在线观看 | 免费人成在线观看 | 青春草视频免费观看 | 日本一区二区三区久久 | 私人影院在线免费观看 | 91香蕉嫩草 | 国产色图片 | 操男孩| 亚洲国产在线视频中文字 | 亚洲天堂免费观看 | 四虎精品免费视频 | 黑人k8经典 | 操儿子| 女教师系列三上悠亚在线观看 | 91网红福利精品区一区二 | 国产福利兔女郎在线观看 | 把内裤拔到一边高h1v1 | 免费视屏 | youporn在线 | 天天做天天爱天天爽综合区 | 日韩欧美亚洲每日更新网 | 久久久久久久尹人综合网亚洲 | 免费在线观看网址大全 | 欧洲肥女大肥臀 | 日韩毛片高清在线看 | t66y地址一地址二地址三 |