❶ 關於python爬蟲 抓取方正教務系統的問題
同二樓,可以參照這個大神的分析步驟檢查下:
http://www.cnblogs.com/dyllove98/archive/2013/07/12/3187186.html
❷ 如何設計一個python分布式爬蟲系統
你都沒想明白為什麼要分布式
========================
我還是認真答一下吧,爬蟲這種東西在大批量抓去時主要有下面幾個量變引發質變的挑戰:
1. 出口IP數量,主要是考慮防止被封禁,帶寬反而不是大問題,這個問題可以通過搭建NAT出口集群,或者單機多IP的方式實現
2. 本地埠號耗盡,由於爬蟲是服務端編程不太常見的主動發起連接的應用,在普通只有一個IP綁定的機器上會受到65535的限制(一般在50000多就會受到限制)
3. 大容量存儲的需求,一般都是通過開源或者自己研發的分布式存儲系統來實現,像谷歌(GFS)和網路(百靈)都是自研,這里就不展開說了
4. 動態網頁的支持,像京東這種網站,內容都是通過類似Facebook的bigpipe一樣動態載入的,直接像curl這樣抓取看到的頁面幾乎是空白的,這就要求爬蟲能模擬JS的運行,這方面有很多基於v8引擎的開源項目:
CasperJS, a navigation scripting and testing utility for PhantomJS and SlimerJS
PhantomJS | PhantomJS
由於這個需求,爬蟲成了CPU密集型的應用了,分布式的需求也就有了
單機爬蟲的主要難點在的非同步非阻塞網路編程,老生常談了。先暫時寫這么多吧
❸ 如何用python3.x模擬登陸正方教務系統
首先引入需要使用到的模塊
import urllib
import urllib.request
import urllib.parse
import http.cookiejar
接下來將POST的鏈接用一個變數保存下來
PostUrl = "http://your school's
ip/default6.aspx" #填寫你學校教務系統的ip
接著創建cookie對象,handler對象和opener對象
cookie = http.cookiejar.CookieJar()
handler =
urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
賦值用戶名和密碼
username = 'your student id'
password = 'your password'
接下來創建需要提交的表單信息,保存在一個字典變數中
這個時候需要根據剛才POST的表單提交的信息來確定字典的內容(不同學校會不同,因此需要視情況而定)
從剛才上面的截圖可以看到,Form Data的內容中出現了一下的情況,
因為瀏覽器默認是utf-8的編碼,但是教務系統是gb2312的,所以這里的中文就無法顯示,因此我們需要查看一下登錄頁面表單中這兩個中文對應的是什麼控制項,這里分別是「學生」還有「登
錄」
表單內容
接下來是header部分,這部分直接復制就差不多了
header內容
然後就是生成post的數據和構造request請求
生成post的數據和構造request請求
最後寫一個try列印出登錄後的頁面即可
輸出
輸出情況:
登錄後頁面的內容
然後使用正則表達式去匹配自己需要的內容就行了。
❹ python爬蟲
編碼的轉換不對,也就是最後面一個錯誤提示
❺ python 用 beautifulsoup 獲得 <div id="z"></div>的東西
一、你取到的跟瀏覽器不一樣,這一般是因為內容是js生成或者js以ajax取到然後更新進去的。
想要自己寫代碼解決恐怕你要自己分析一下網頁所帶的js的功能了,或者想偷懶的話用webbrowser之類的模塊通過瀏覽器來取得內容。
二、要取div的id屬性用BeautifulSoup即可達到目的,要是裝了PyQuery的就更簡單,下面給個BeautifulSoup的例子:
from bs4 import BeautifulSoup
sp = BeautifulSoup('<div id="z"></div>')
assert(sp.div['id'],'z')
print sp.div['id']
❻ 怎麼用python爬蟲寫一個搶課軟體
說一下技術上的幾個問題吧
1.模擬登陸requests.Session能夠跨請求地保持某些參數,比如cookies,即在同一個Session實例發出的所有請求都保持同一個cookies,而requests模塊每次會自動處理cookies,這樣就很方便地處理登錄時的cookies問題。你需要找到教務網登錄按鈕提交的地址,把你的學號和密碼弄到一個字典里發出去,然後就登錄成功了。
2.找到選課頁面,分析選課頁面可以發現,選課頁面的url一般是一個前綴加課程序號加亂七八糟的東西,所以你需要手動輸入課程序號等等然後拼接url,再訪問。
3.訪問成功了以後同理,再尋找選課按鈕提交的地址,再把需要POST的數據全部放在一個字典里,發出去,檢查頁面狀態,沒有成功繼續循環。
❼ 畢業設計,Python爬蟲系統 目前只知道一點點皮毛。求思路, 爬去信息,然後做成系統,老師還要求
明顯串列比多線程的慢啊, 你的思路有一些坑
python的多線程由於GIL的存在, 不咋好用, 你還不如使用gevent做多路復用的
python串列的就是一個一個爬唄
首先手機1w個url, 對比兩個爬蟲的效率就可以
庫一般而言, 寫一個爬蟲系統需要輸入一堆種子, 這些種子是初始化鏈接, 你可以通過requests庫和pyquery庫進行解析, 按照特定的演算法比如廣度優先的方式再把這些鏈接對應的內容爬取出來,注意由於一個鏈接可能出現在多個網頁中, 還需要在抓取之前採取排重操作, 這個你可以採用redis, 畢竟基於內存的比較快
❽ python網路爬蟲怎麼學習
現行環境下,大數據與人工智慧的重要依託還是龐大的數據和分析採集,類似於淘寶 京東 網路 騰訊級別的企業 能夠通過數據可觀的用戶群體獲取需要的數據,而一般企業可能就沒有這種通過產品獲取數據的能力和條件,想從事這方面的工作,需掌握以下知識:
1. 學習Python基礎知識並實現基本的爬蟲過程
一般獲取數據的過程都是按照 發送請求-獲得頁面反饋-解析並且存儲數據 這三個流程來實現的。這個過程其實就是模擬了一個人工瀏覽網頁的過程。
Python中爬蟲相關的包很多:urllib、requests、bs4、scrapy、pyspider 等,我們可以按照requests 負責連接網站,返回網頁,Xpath 用於解析網頁,便於抽取數據。
2.了解非結構化數據的存儲
爬蟲抓取的數據結構復雜 傳統的結構化資料庫可能並不是特別適合我們使用。我們前期推薦使用MongoDB 就可以。
3. 掌握一些常用的反爬蟲技巧
使用代理IP池、抓包、驗證碼的OCR處理等處理方式即可以解決大部分網站的反爬蟲策略。
4.了解分布式存儲
分布式這個東西,聽起來很恐怖,但其實就是利用多線程的原理讓多個爬蟲同時工作,需要你掌握 Scrapy + MongoDB + Redis 這三種工具就可以了。
❾ python教務管理系統畢業設計難嗎
python教務管理系統畢業設計不難。
教務系統管理平台充分利用互聯網路B/S管理系統模式,以網路為平台,為各個學校教務系統的管理提供一個平台,幫助學校管理教務系統,用一個帳號解決學校教務教學管理,並且學校可以自由選擇學校需要的教務管理系統,靈活地定製符合學校自己實際情況的教務系統。
系統構成:
成績信息管理
教務工作人員通過該模塊來進行學生成績的管理,在進行學生成績的添加時,可用它來為學生設置所在班級的課程表來直接輸入成績。
財務信息管理
教務工作人員通過此模塊來管理財務信息,包括學生的繳費和欠費等。在進行繳費時候,打開新的窗口進行繳費錄入,在保存的時候要進行資料庫的檢驗,看學生是否已繳過費用,只有在不重復的情況下才能進行繳費。在學生欠費的情況下可以查找出某些班級的學生欠費,可以導出Excel的形式來列印。(如院校通中的財務繳費)
列印信息管理
教務工作人員可以通過列印模塊來列印學生成績信息,選課記表和班級表。可以根據班級、學生學號、課程編號來列印學生成績單,列印前還要可以預覽所要列印的報表。