激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

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

香港云服务器
服務器之家 - 腳本之家 - Python - python 網絡爬蟲初級實現代碼

python 網絡爬蟲初級實現代碼

2020-08-14 11:11ACdreamers Python

這篇文章主要介紹了python 網絡爬蟲初級實現代碼,需要的朋友可以參考下

首先,我們來看一個Python抓取網頁的庫:urllib或urllib2。

那么urllib與urllib2有什么區別呢?
可以把urllib2當作urllib的擴增,比較明顯的優勢是urllib2.urlopen()可以接受Request對象作為參數,從而可以控制HTTP Request的header部。
做HTTP Request時應當盡量使用urllib2庫,但是urllib.urlretrieve()函數以及urllib.quote等一系列quote和unquote功能沒有被加入urllib2中,因此有時也需要urllib的輔助。

urllib.open()這里傳入的參數要遵循一些協議,比如http,ftp,file等。例如:

urllib.open('http://www.baidu.com')
urllib.open('file:D\Python\Hello.py')

現在有一個例子,下載一個網站上所有gif格式的圖片。那么Python代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import re
import urllib
 
def getHtml(url):
 page = urllib.urlopen(url)
 html = page.read()
 return html
 
def getImg(html):
 reg = r'src="(.*?\.gif)"'
 imgre = re.compile(reg)
 imgList = re.findall(imgre,html)
 print imgList
 cnt = 1
 for imgurl in imgList:
  urllib.urlretrieve(imgurl,'%s.jpg' %cnt)
  cnt += 1
 
if __name__ == '__main__':
 html = getHtml('http://www.baidu.com')
 getImg(html)

根據上面的方法,我們可以抓取一定的網頁,然后提取我們所需要的數據。

實際上,我們利用urllib這個模塊來做網絡爬蟲效率是極其低下的,下面我們來介紹Tornado Web Server。
Tornado web server是使用Python編寫出來的一個極輕量級、高可伸縮性和非阻塞IO的Web服務器軟件,著名的Friendfeed網站就是使用它搭建的。Tornado跟其他主流的Web服務器框架(主要是Python框架)不同是采用epoll非阻塞IO,響應快速,可處理數千并發連接,特別適用用于實時的Web服務。

用Tornado Web Server來抓取網頁效率會比較高。
從Tornado的官網來看,還要安裝backports.ssl_match_hostname,官網如下:

http://www.tornadoweb.org/en/stable/

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import tornado.httpclient
 
def Fetch(url):
 http_header = {'User-Agent' : 'Chrome'}
 http_request = tornado.httpclient.HTTPRequest(url=url,method='GET',headers=http_header,connect_timeout=200,request_timeout=600)
 print 'Hello'
 http_client = tornado.httpclient.HTTPClient()
 print 'Hello World'
 
 print 'Start downloading data...'
 http_response = http_client.fetch(http_request)
 print 'Finish downloading data...'
 
 print http_response.code
 
 all_fields = http_response.headers.get_all()
 for field in all_fields:
  print field
 
 print http_response.body
 
if __name__ == '__main__':
 Fetch('http://www.baidu.com')

urllib2的常見方法:

 

(1)info() 獲取網頁的Header信息

(2)getcode() 獲取網頁的狀態碼

(3)geturl() 獲取傳入的網址

(4)read() 讀取文件的內容

延伸 · 閱讀

精彩推薦
2654
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 夜夜夜精品视频 | 久久华人 | 国产亚洲精品久久久久久久 | 国产精品美女久久久免费 | 精品一区二区三区免费毛片爱 | 午夜精品福利视频 | av在线久草| 爽妇网国产精品 | 一级成人毛片 | 日韩av电影在线观看 | 天天操天天干天天操 | 天天草天天干天天 | 乱淫67194 | 亚洲一二区精品 | 91 在线 | 黑色丝袜美美女被躁视频 | 黄色的视频免费观看 | 成人在线视频在线观看 | 日本aaa一级片 | 一级空姐毛片 | 色污视频 | 一区二区三区在线播放视频 | 羞羞视频免费视频欧美 | xxx18hd18hd日本| 在线视频 中文字幕 | 久久老司机精品视频 | 黄色片在线观看网站 | 免费毛片在线 | 国产亚洲精品综合一区91 | 欧产日产国产精品乱噜噜 | 99久久精品免费 | 一级毛片免费高清视频 | 香蕉黄色网 | 亚洲一区播放 | 色播视频在线播放 | 黄色网络免费看 | 国内精品久久久久久久星辰影视 | 亚洲精品欧美在线 | 精品国产91久久久久久浪潮蜜月 | 久久精品在线免费观看 | 国产呦在线观看视频 |