国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【爬蟲系列之二】python基礎(chǔ)知識的了解

SHERlocked93 / 3193人閱讀

摘要:數(shù)據(jù)傳送上面介紹了參數(shù),這里就是將需要的參數(shù)通過方式傳入上述代碼引入了庫,現(xiàn)在我們模擬登陸京東商場,但是應(yīng)該是無法登陸的,一般都是需要設(shè)置一些頭部的工作,或者其它的參數(shù),這里使用了庫對參數(shù),進(jìn)行一下。

了解了 前面的環(huán)境搭建,以及python的基礎(chǔ)知識的學(xué)習(xí),咱們接下來學(xué)習(xí)一下,如何將網(wǎng)頁扒下來

一、案例介紹

當(dāng)我們打開瀏覽器,打開頁面,看到的是好看的頁面,但是其實是由瀏覽器解釋才呈現(xiàn)的,實際上這好看的頁面,是通過html,css,js組合形成的。

接下來,我們就寫個小例子來扒下來網(wǎng)頁(本篇文章,以python2.7為例子)

# coding:utf-8

import urllib2
response = urllib2.urlopen("http://music.163.com/")
print response.read()
二、分析案例的方法

然后讓我們來分析一下上述例子的代碼是干啥的

第一行:import urllib2

該行代碼是通過import將python的urllib2庫引入

第二行:response = urllib2.urlopen("http://music.163.com/")

這行代碼是調(diào)用urllib2庫中的urlopen方法,然后傳入了一個網(wǎng)易云音樂的url地址,urlopen方法為
`urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,

        cafile=None, capath=None, cadefault=False, context=None)`

其中第一個參數(shù)就是url,然后其它幾個參數(shù)都是可以不傳送的,其中第二個參數(shù)表示的訪問該網(wǎng)址需要的傳送的數(shù)據(jù),第三個參數(shù)timeout表示的是過期時間,默認(rèn)值是socket._GLOBAL_DEFAULT_TIMEOUT

第三行:print response.read()
其中response對象有一個read方法,可以返回獲取到的頁面內(nèi)容,千萬記得添加上read方法,不然會出現(xiàn)打印出來是對象。

三、Request的構(gòu)造

將上述例子修改下,如下,其中urlopen是可以傳入一個request請求,它是一個Request類的實例,構(gòu)造的時候可以傳入url,data,header等參數(shù),它可以讓我們構(gòu)造一個request對象,在request請求中添加相關(guān)的header頭文件。

# coding:utf-8

import urllib2

request = urllib2.Request("http://music.163.com/")
response = urllib2.urlopen(request)

print response.read()
四、POST和GET數(shù)據(jù)傳送 GET 數(shù)據(jù)傳送

GET方式我們可以直接把參數(shù)寫到網(wǎng)址上面,直接構(gòu)建一個帶參數(shù)的URL出來即可。

import urllib
import urllib2

values = {}
values["wd"] = "zs"
data = urllib.urlencode(values)
url = "http://www.baidu.com/s" + "?" + data
request = urllib2.Request(url)
response = urllib2.urlopen(request)

print response.read()
POST 數(shù)據(jù)傳送

上面介紹了data參數(shù) ,這里就是將需要的參數(shù) 通過data方式傳入

import urllib
import urllib2
 
values = {}
values["username"] = "1016903103@qq.com"
values["password"] = "XXXX"
data = urllib.urlencode(values) 
url = "https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F"
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()

上述代碼引入了urllib庫,現(xiàn)在我們模擬登陸京東商場,但是應(yīng)該是無法登陸的,一般都是需要設(shè)置一些頭部header的工作,或者其它的參數(shù),這里使用了urllib庫對參數(shù),進(jìn)行urlencode一下。

五、設(shè)置headers

上面描述了一下,一般請求都需要帶上各種header屬性。
看下圖,是京東的登陸頁面,然后可以打開谷歌瀏覽器F12,然后可以看到請求,上面headers設(shè)置了挺多的參數(shù),其中agent是請求的身份,還有refer,都是用來反盜鏈。看下面例子

import urllib  
import urllib2  
 
url = "https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F"
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
refer ="https://www.jd.com/"
values = {"username" : "cqc",  "password" : "XXXX" }  
headers = { "User-Agent" : user_agent,"Refer":refer }  
data = urllib.urlencode(values)  
request = urllib2.Request(url, data, headers)  
response = urllib2.urlopen(request)  
page = response.read()

一般進(jìn)行爬蟲的時候,可以考慮檢查瀏覽器的headers的內(nèi)容

六、Proxy(代理)的設(shè)置

urllib2 默認(rèn)會使用 http_proxy 來設(shè)置 HTTP Proxy。假如一個網(wǎng)站它會某一段時間某個IP 的訪問次數(shù),如果訪問次數(shù)過多,它會禁止你的訪問。所以你可以設(shè)置一些來幫助你做工作,每隔一段時間換一個代理,網(wǎng)站君都不知道是誰在搗鬼了,這酸爽!
下面一段代碼說明設(shè)置方法

import urllib2
enable_proxy = True
proxy_handler = urllib2.ProxyHandler({"http" : "http://some-proxy.com:8080"})
null_proxy_handler = urllib2.ProxyHandler({})
if enable_proxy:
    opener = urllib2.build_opener(proxy_handler)
else:
    opener = urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)
七、使用 HTTP 的 PUT 和 DELETE 方法

下面的案例是用來多帶帶設(shè)置http的put和delete,請求

import urllib2
request = urllib2.Request(uri, data=data)
request.get_method = lambda: "PUT" # or "DELETE"
response = urllib2.urlopen(request)
推薦閱讀:

【爬蟲系列之一】爬蟲開發(fā)環(huán)境的搭建

更多精彩內(nèi)容,歡迎大家關(guān)注我的微信公眾號:喝醉的清茶

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41855.html

相關(guān)文章

  • 爬蟲系列之三】URLError異常處理以及Cookie使用

    摘要:一的處理出現(xiàn)產(chǎn)生的原因很多,比如網(wǎng)絡(luò)沒法連接,連接不到服務(wù)器,或者服務(wù)器不存在。二的使用,一般是某些網(wǎng)站為了辨別用戶身份,進(jìn)行跟蹤,從而存儲在客戶端的數(shù)據(jù)。模塊的主要作用是提供可存儲的對象,以便于與模塊配合使用來訪問資源。 一、urlError的處理 出現(xiàn)urlError產(chǎn)生的原因很多,比如:網(wǎng)絡(luò)沒法連接,連接不到服務(wù)器,或者服務(wù)器不存在。在代碼中,我們需要用try-except的語句...

    xiaochao 評論0 收藏0
  • 首次公開,整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • Python爬蟲入門教程 7-100 蜂鳥網(wǎng)圖片爬取之二

    摘要:蜂鳥網(wǎng)圖片簡介今天玩點新鮮的,使用一個新庫,利用它提高咱爬蟲的爬取速度。上下文不在提示,自行搜索相關(guān)資料即可創(chuàng)建一個對象,然后用該對象去打開網(wǎng)頁??梢赃M(jìn)行多項操作,比如等代碼中等待網(wǎng)頁數(shù)據(jù)返回創(chuàng)建線程,方法負(fù)責(zé)安排執(zhí)行中的任務(wù)。 1. 蜂鳥網(wǎng)圖片-簡介 今天玩點新鮮的,使用一個新庫 aiohttp ,利用它提高咱爬蟲的爬取速度。 安裝模塊常規(guī)套路 pip install aiohtt...

    z2xy 評論0 收藏0
  • Python爬蟲入門教程 7-100 蜂鳥網(wǎng)圖片爬取之二

    摘要:蜂鳥網(wǎng)圖片簡介今天玩點新鮮的,使用一個新庫,利用它提高咱爬蟲的爬取速度。上下文不在提示,自行搜索相關(guān)資料即可創(chuàng)建一個對象,然后用該對象去打開網(wǎng)頁。可以進(jìn)行多項操作,比如等代碼中等待網(wǎng)頁數(shù)據(jù)返回創(chuàng)建線程,方法負(fù)責(zé)安排執(zhí)行中的任務(wù)。 1. 蜂鳥網(wǎng)圖片-簡介 今天玩點新鮮的,使用一個新庫 aiohttp ,利用它提高咱爬蟲的爬取速度。 安裝模塊常規(guī)套路 pip install aiohtt...

    hufeng 評論0 收藏0
  • Python爬蟲入門教程 7-100 蜂鳥網(wǎng)圖片爬取之二

    摘要:蜂鳥網(wǎng)圖片簡介今天玩點新鮮的,使用一個新庫,利用它提高咱爬蟲的爬取速度。上下文不在提示,自行搜索相關(guān)資料即可創(chuàng)建一個對象,然后用該對象去打開網(wǎng)頁。可以進(jìn)行多項操作,比如等代碼中等待網(wǎng)頁數(shù)據(jù)返回創(chuàng)建線程,方法負(fù)責(zé)安排執(zhí)行中的任務(wù)。 1. 蜂鳥網(wǎng)圖片-簡介 今天玩點新鮮的,使用一個新庫 aiohttp ,利用它提高咱爬蟲的爬取速度。 安裝模塊常規(guī)套路 pip install aiohtt...

    mcterry 評論0 收藏0

發(fā)表評論

0條評論

SHERlocked93

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<