怎麼用python扒網頁?
python爬蟲網頁的基本流程:
首先選取一部分精心挑選的種子URL。
將這些URL放入待抓取URL佇列。
從待抓取URL佇列中讀取待抓取佇列的URL,解析DNS,並且得到主機的IP,並將URL對應的網頁下載下來,儲存進已下載網頁庫中。此外,將這些URL放進已抓取URL佇列。
分析已抓取URL佇列中的URL,從已下載的網頁資料中分析出其他URL,並和已抓取的URL進行比較去重,最後將去重過的URL放入待抓取URL佇列,從而進入下一個迴圈。
1、HTTP請求實現
使用urllib2/urllib實現:
urllib2和urllib是Python中的兩個內建模組,要實現HTTP功能,實現方式是以urllib2為主,urllib為輔。
urllib2提供一個基礎函式urlopen,透過向指定的URL發出請求來獲取資料。最簡單的形式是:
import urllib2 response=urllib2.urlopen('') html=response.read() print html
其實可以將上面對的請求響應分為兩步,一步是請求,一步是響應,形式如下:
import urllib2 # 請求 request=urllib2.Request('') # 響應 response = urllib2.urlopen(request) html=response.read() print html
還有post請求實現:
import urllib import urllib2 url = '' postdata = {'username' : 'qiye', 'password' : 'qiye_pass'} # info 需要被編碼為urllib2能理解的格式,這裡用到的是urllib data = urllib.urlencode(postdata) req = urllib2.Request(url, data) response = urllib2.urlopen(req) html = response.read()
2、請求頭headers處理
將上面的例子改寫一下,加上請求頭資訊,設定一下請求頭中的User-Agent域和Referer域資訊。
import urllib import urllib2 url = '' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' referer='' postdata = {'username' : 'qiye', 'password' : 'qiye_pass'} # 將user_agent,referer寫入頭資訊 headers={'User-Agent':user_agent,'Referer':referer} data = urllib.urlencode(postdata) req = urllib2.Request(url, data,headers) response = urllib2.urlopen(req) html = response.read()
3、Cookie處理
urllib2對Cookie的處理也是自動的,使用CookieJar函式進行Cookie的管理。如果需要得到某個Cookie項的值,可以這麼做:
import urllib2 import cookielib cookie = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) response = opener.open('') for item in cookie: print item.name+':'+item.value
但是有時候會遇到這種情況,我們不想讓urllib2自動處理,我們想自己新增Cookie的內容,可以透過設定請求頭中的Cookie域來做:
import urllib2 opener = urllib2.build_opener() opener.addheaders.append( ( 'Cookie', 'email=' + "xxxxxxx@163.com" ) ) req = urllib2.Request( "/" ) response = opener.open(req) print response.headers retdata = response.read()
更多Python知識請關注
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2833342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 怎麼用python django做網站?PythonDjango網站
- 網路爬蟲有什麼用?怎麼爬?手把手教你爬網頁(Python程式碼)爬蟲網頁Python
- python爬蟲怎麼翻頁Python爬蟲
- BEM實戰之扒一扒淘票票頁面
- 網頁開啟自動跳轉另一個網頁怎麼辦、網頁劫持怎麼解決網頁
- python api怎麼用PythonAPI
- 怎麼更改網頁上的字網頁
- 怎麼執行網頁版jupyter?網頁
- 教你用 Python 來朗讀網頁Python網頁
- python中geopy怎麼用Python
- python的int怎麼用Python
- Python集合要怎麼用Python
- 怎麼修改一個公司網站的網頁?網站網頁
- 網頁用python爬取後如何解析網頁Python
- 網頁伺服器無響應怎麼回事?怎麼辦?網頁伺服器
- steam無法載入網頁怎麼辦 steam網頁提示錯誤程式碼-118怎麼解決網頁
- Teamviewer內網怎麼用View內網
- python3.6print怎麼用Python
- python getopt模組怎麼用?Python
- Python 中strip()方法怎麼用?Python
- python TestCase測試用例怎麼用Python
- python中Matplotlib是什麼?怎麼用?Python
- 禁止複製的網頁怎麼複製網頁
- Python應用開發——爬取網頁圖片Python網頁
- 怎麼建立屬於自己的網址,教你怎樣建網頁,裝修頁面內容網頁
- 谷歌瀏覽器怎麼翻譯英文網頁 chrome瀏覽器自帶翻譯功能怎麼用谷歌瀏覽器網頁Chrome
- 用大資料扒一扒蔡徐坤的真假流量粉大資料
- [譯] 怎麼做:React Native 網頁應用。一場開心的掙扎React Native網頁
- Python中randrange()函式怎麼用?Python函式
- python3.5中cmp怎麼用Python
- python的upper函式怎麼用Python函式
- 怎麼用Python生成隨機數Python隨機
- python安裝之後怎麼用Python
- Python指令碼和網頁有什麼區別?Python指令碼網頁
- win10網頁無法輸入中文怎麼解決_win10網頁不能輸入中文怎麼辦Win10網頁
- python 網頁文字提取Python網頁
- 網站404頁面怎麼做 404頁面製作步驟網站
- 網站首頁報416錯誤怎麼辦?網站