摘要:原文鏈接使用和模擬登陸本科教學網并抓取數據剛才好無聊,突然想起來之前做一個課表的點子,于是百度了起來。使用現在,我們已經登錄了本科教學網,然后結合之前的解析就可以獲取網頁內的課表了。
原文鏈接:《Python使用cookielib、urllib2和pyquery模擬登陸本科教學網并抓取數據》
剛才好無聊,突然想起來之前做一個課表的點子,于是百度了起來。
PyQuery剛開始,我是這樣想的:在寫微信墻的時候,用到了urllib2【兩行代碼抓網頁】,那么就只剩下解析html了。于是百度:python解析html。發現一篇好文章,其中介紹到了pyQuery。
pyQuery 是 jQuery 在Python中的實現,能夠以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") #現在已經獲取了本科教學網首頁的html classes = html(".haveclass") #通過類名獲取元素 #如果你對jQuery熟悉的話,那么你現在肯定明白pyQuery的方便了
更多用法參見pyQuery API
urllib、urllib2好像學會了使用pyQuery就能抓課表了呢,但是,如果你直接用我的源碼,肯定會出錯。因為還沒有登錄啊!
所以,在運行這一行抓取正確的代碼之前,我們需要模擬登錄本科教學網。這個時候,我想起來urllib有模擬post請求的函數,于是我百度了:urllib post。
這是一個最簡的模擬post請求例子:
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的擴展包【233想到了三國殺
在這個最簡的實例里,用我的校園網賬號向登錄頁面提交表單數據,模擬登錄。
PyQuery使用
現在,我們已經登錄了本科教學網,然后結合之前的pyQuery解析html就可以獲取網頁內的課表了。
html = pq(url=u"http://seam.ustb.edu.cn:8080/jwgl/index.jsp") self.render("index.html",data=html(".haveclass"))
結果展示如圖:
我發現,pyQuery不但用于解析html非常方便,而且可以作為跨域抓取數據的工具,NICE!!!
希望對大家有幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37534.html
摘要:當我們試圖從新浪微博抓取數據時,我們會發現網頁上提示未登錄,無法查看其他用戶的信息。三模擬登錄下面將介紹使用獲取新浪微博,然后使用提交從而實現模擬登錄。 當我們試圖從新浪微博抓取數據時,我們會發現網頁上提示未登錄,無法查看其他用戶的信息。模擬登錄是定向爬蟲制作中一個必須克服的問題,只有這樣才能爬取到更多的內容。 showImg(https://segmentfault.com/img/...
摘要:一的處理出現產生的原因很多,比如網絡沒法連接,連接不到服務器,或者服務器不存在。二的使用,一般是某些網站為了辨別用戶身份,進行跟蹤,從而存儲在客戶端的數據。模塊的主要作用是提供可存儲的對象,以便于與模塊配合使用來訪問資源。 一、urlError的處理 出現urlError產生的原因很多,比如:網絡沒法連接,連接不到服務器,或者服務器不存在。在代碼中,我們需要用try-except的語句...
摘要:相當于該用戶的檔案。上述的文字對機制描述的比較簡單也并不一定完全正確。但是默認的并不支持。中供我們使用的是。創建需要闖入一個存放的容器。即過期的也保存。目前博主只知道鏈接后帶的參數需要與相匹配。但是并不知道兩者具體的關系。 很多網站的資源需要用戶登錄之后才能獲取。我們一旦登錄后再訪問其他被保護的資源的時候,就不再需要再次輸入賬號、密碼。那么網站是怎么辦到的呢?一般來說,用戶在登錄之后,...
摘要:學習網絡爬蟲主要分個大的版塊抓取,分析,存儲另外,比較常用的爬蟲框架,這里最后也詳細介紹一下。網絡爬蟲要做的,簡單來說,就是實現瀏覽器的功能。 Python學習網絡爬蟲主要分3個大的版塊:抓取,分析,存儲 另外,比較常用的爬蟲框架Scrapy,這里最后也詳細介紹一下。 首先列舉一下本人總結的相關文章,這些覆蓋了入門網絡爬蟲需要的基本概念和技巧:寧哥的小站-網絡爬蟲,當我們在瀏覽器中輸入...
摘要:楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數據提供網站數據采集和爬蟲軟件定制開發服務,服務范圍涵蓋社交網絡電子商務分類信息學術研究等。 楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...
閱讀 1507·2021-11-25 09:43
閱讀 4057·2021-11-15 11:37
閱讀 3192·2021-08-17 10:13
閱讀 3503·2019-08-30 14:16
閱讀 3534·2019-08-26 18:37
閱讀 2488·2019-08-26 11:56
閱讀 1128·2019-08-26 10:42
閱讀 609·2019-08-26 10:39