国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python網(wǎng)絡(luò)編程學習筆記(六):Web客戶端訪問

2020-02-23 05:27:16
字體:
供稿:網(wǎng)友

6.1 最簡單的爬蟲

網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。python的urllib/urllib2等模塊很容易實現(xiàn)這一功能,下面的例子實現(xiàn)的是對baidu首頁的下載。具體代碼如下:

代碼如下:
import urllib2
page=urllib2.urlopen("http://www.baidu.com")
print page.read()

6.2 提交表單數(shù)據(jù)

(1)用GET方法提交數(shù)據(jù)
提交表單的GET方法是把表單數(shù)據(jù)編碼至URL。在給出請示的頁面后,加上問號,接著是表單的元素。如在百度中搜索“馬伊琍”得到url為http://www.baidu.com/s?wd=%E9%A9%AC%E4%BC%8A%E7%90%8D&pn=100&rn=20&ie=utf-8&usm=4&rsv_page=1。其中?后面為表單元素。wd=%E9%A9%AC%E4%BC%8A%E7%90%8D表示搜索的詞是“馬伊琍”,pn表示從第100條信息所在頁開始顯示(感覺是這樣,我試了幾次,當寫100時,從其所在頁顯示,但如果寫10,就是從第1頁顯示),rn=20表示每頁顯示20條,ie=utf-8表示編碼格式,usm=4沒明白是什么意思,換了1、2、3試了下,沒發(fā)現(xiàn)什么變化,rsv_page=1表示第幾頁。如果要下載以上頁面比較簡單的方法是直接用上面的網(wǎng)址進行提取。如代碼:

代碼如下:
import urllib2
keyword=urllib.quote('馬伊琍')
page=urllib2.urlopen("http://www.baidu.com/s?wd="+keyword+"&pn=100&rn=20&ie=utf-8&usm=4&rsv_page=1")
print page.read()

(2)用post方法提交

GET方法中,數(shù)據(jù)是被加到URL上,這種方法數(shù)據(jù)量要求不大,如果需要交換大量數(shù)據(jù)的時間,POST方法是一個很好的方法。這里以前段時間寫的博客《python模擬163登陸獲取郵件列表》為例,具體代碼不在列出,詳見地址:http://www.cnblogs.com/xiaowuyi/archive/2012/05/21/2511428.html。

6.3 urllib,urllib2,httplib,mechanize的介紹
6.3.1urllib模塊(引自:http://my.oschina.net/duhaizhang/blog/68893)
urllib模塊提供接口可以使我們像訪問本地文件一樣來讀取www和ftp上的數(shù)據(jù)。模塊中最重要的兩個函數(shù)分別是:urlopen()和urlretrieve()。

urllib.urlopen(url[, data[, proxies]]) :
本函數(shù)創(chuàng)建一個表示遠程url的類文件對象,然后像本地文件一樣操作這個類文件對象來獲取遠程數(shù)據(jù)。參數(shù)url表示遠程數(shù)據(jù)的路徑,一般是網(wǎng)址;參數(shù)data表示以post方式提交到url的數(shù)據(jù);參數(shù)proxies用于設(shè)置代理。urlopen返回 一個類文件對象,返回的類文件對象提供了如下方法:

read(), readline(), readlines(), fileno(), close():這些方法的使用方式與文件對象完全一樣;
info():返回一個httplib.HTTPMessage對象,表示遠程服務(wù)器返回的頭信息;
getcode():返回Http狀態(tài)碼。如果是http請求,200表示請求成功完成;404表示網(wǎng)址未找到;
geturl():返回請求的url;

代碼如下:
#! /usr/bin/env python
#coding=utf-8
import urllib
content=urllib.urlopen("http://www.baidu.com")

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 六盘水市| 永寿县| 通辽市| 平乐县| 红安县| 城固县| 方山县| 宁武县| 通州市| 南昌市| 安丘市| 九江县| 海兴县| 乌鲁木齐县| 鄄城县| 泽州县| 石棉县| 永康市| 社会| 平度市| 格尔木市| 台中县| 平度市| 瓮安县| 军事| 门头沟区| 嫩江县| 禹城市| 永济市| 大安市| 徐州市| 高安市| 江西省| 星子县| 绥芬河市| 健康| 大余县| 辽阳县| 洛南县| 石台县| 铜川市|