欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python爬蟲之GET和POST的區(qū)別-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

從策劃到設(shè)計制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供網(wǎng)站設(shè)計制作、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計、主機域名、網(wǎng)站空間、網(wǎng)絡(luò)營銷、VI設(shè)計、 網(wǎng)站改版、漏洞修補等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。

今天就跟大家聊聊有關(guān)Python爬蟲之GET和POST的區(qū)別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

爬蟲——GET請求和POST請求

urllib.parse.urlencode()和urllib.parse.unquote()

編碼工作使用urllib.parse的urlencode()函數(shù),幫我們將key:value這樣的鍵值對轉(zhuǎn)換成"key=value"這樣的字符串,解碼工作可以使用urllib的unquote()函數(shù)。

# python3.5控制臺中測試結(jié)果
>>> import urllib
>>> word = {"wd":"爬蟲"}
# 通過urllib.parse.urlencode()方法,將字典鍵值對按URL編碼轉(zhuǎn)換,從而能被wed服務(wù)器接受。
>>> urllib.parse.urlencode(word)
'wd=%E7%88%AC%E8%99%AB'
# 通過urllib.parse.unquote()方法,把URL編碼字符串,轉(zhuǎn)換回原先的字符串。
>>> urllib.parse.unquote(word)
'wd=爬蟲'

一般HTTP請求提交數(shù)據(jù),需要編碼成URL編碼格式,然后做為URL的一部分,或者作為參數(shù)傳到Request對象中。

GET方式

GET請求一般用于我們向服務(wù)器獲取數(shù)據(jù),比如說,我們用百度搜索 爬蟲:https://www.baidu.com/s?wd=爬蟲(https://www.baidu.com/s?wd=%E7%88%AC%E8%99%AB)

我們可以看到在請求部分里,http://www.baidu.com/s? 之后出現(xiàn)一個長長的字符串,其中就包含我們要查詢的關(guān)鍵詞“爬蟲”,于是我們可以嘗試用默認(rèn)的GET方式來發(fā)送請求。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
# 導(dǎo)入庫
import urllib.request
import urllib
 
url = "http://www.baidu.com/s?"
word = {"wd":"爬蟲"}
# 轉(zhuǎn)換成url編碼格式
word = urllib.parse.urlencode(word)
# 拼接成完整的url
full_url = url + word
# chrome 的 User-Agent,包含在 header里
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
# url 連同 headers,一起構(gòu)造Request請求,這個請求將附帶 chrome 瀏覽器的User-Agent
request = urllib.request.Request(full_url, headers = header)
# 向服務(wù)器發(fā)送這個請求
response = urllib.request.urlopen(request)
 
html = response.read()
fo = open("baidu.html", "wb")
fo.write(html)
fo.close()

批量爬取貼吧頁面數(shù)據(jù)

首先我們創(chuàng)建一個python文件:tiebaSpider.py,我們要完成的功能是,輸入一個百度貼吧的地址,比如:百度貼吧LOL吧

第一頁:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=0

第二頁:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=50

第三頁:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=100

……

爬取以上頁面的內(nèi)容

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
"""
功能:批量爬取貼吧頁面數(shù)據(jù)
目標(biāo)地址:百度貼吧LOL吧
分析:
    第一頁:https://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=0
    第二頁:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=50
    第三頁:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=100
    ……
規(guī)律:
    貼吧中每個頁面URL不同之處,就是最后的pn值,其余的都是一樣的。其pn = (page - 1) * 50
    url = "https://tieba.baidu.com/f?kw=lol&ie=utf-8&pn="
    pn = (page - 1) * 50
    full_url = url + str(pn)
"""
 
# 導(dǎo)入庫
import urllib
import urllib.request
 
# 根據(jù)url地址,獲取服務(wù)器響應(yīng)文件
def loadPage(url):
    """
    功能:根據(jù)url地址,獲取服務(wù)器響應(yīng)文件
    :param url: url地址
    :return: 獲取的服務(wù)器響應(yīng)文件信息
    """
    # chrome 的User-Agent 頭
    header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
    # url 連同 headers,一起構(gòu)造Request請求,這個請求將附帶 chrome 瀏覽器的User-Agent
    request = urllib.request.Request(url, headers = header)
    # 向服務(wù)器發(fā)送這個請求
    reponse = urllib.request.urlopen(request)
    # 獲取響應(yīng)文件中的全部內(nèi)容
    html = reponse.read()
 
    return html
 
# 存儲文件
def writeFile(html, file_name):
    """
    功能:存服務(wù)器響應(yīng)文件到本地磁盤文件里
    :param html: 服務(wù)器響應(yīng)文件內(nèi)容
    :param file_name: 本地磁盤文件名
    :return: None
    """
    with open(file_name, "wb") as f:
        f.write(html)
 
 
# 貼吧爬蟲函數(shù)
def tiebaSpider(url, begin_page, end_page):
    """
    功能:處理從begin_page到end_page的url頁面
    :param url: url地址
    :param begin_page: 需爬取的起始頁
    :param end_page: 需爬取的終止頁
    :return:
    """
    for page in range(begin_page, end_page + 1):
        pn = (page - 1) * 50
        full_url = url + str(pn)
        file_name = "第" + str(page) + "頁.html"
        print("正在爬取" + file_name)
        # 獲取full_url對應(yīng)的html文件信息
        html = loadPage(full_url)
        print("正在存儲" + file_name)
        # 存儲full_url對應(yīng)的html文件信息
        writeFile(html, file_name)
 
# 主函數(shù)
if __name__ == '__main__':
    url = "https://tieba.baidu.com/f?"
    # 輸入需爬取的貼吧
    kw = input("請輸入需要爬取的貼吧:")
    # 輸入需爬取的起始頁和終止頁
    begin_page = int(input("請輸入起始頁:"))
    end_page = int(input("請輸入終止頁:"))
    key = urllib.parse.urlencode({"kw":kw})
    # 組合的的url示例:https://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=
    url = url + key + "&ie=utf-8&pn="
    # 調(diào)用貼吧爬蟲函數(shù),爬取數(shù)據(jù)
    tiebaSpider(url, begin_page, end_page)

POST方式

Request請求對象里有data參數(shù),這就是用在POST里的,我們要傳送的數(shù)據(jù)就是這個參數(shù)data,data是一個字典,里面要有匹配鍵值對。

以下以有道詞典翻譯網(wǎng)站為例為模擬POST請求。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
  
"""
POST方式:以有道詞典翻譯網(wǎng)站為例
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
"""
 
# 導(dǎo)入庫
import urllib.request
import urllib
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
# chrome 的 User-Agent,包含在 header里
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
word = input("請輸入需要翻譯的詞條:")
 
from_data = {
    "i":word,
    "from":"AUTO",
    "to":"AUTO",
    "smartresult":"dict",
    "doctype":"json",
    "version":"2.1",
    "keyfrom":"fanyi.wed"
}
data = urllib.parse.urlencode(from_data)
data = data.encode(encoding="utf-8")  # str轉(zhuǎn)bytes
 
request = urllib.request.Request(url, data = data, headers = header)
 
response = urllib.request.urlopen(request)
 
html = response.read().decode(encoding = "utf-8").strip()
 
print(html)

獲取AJAX加載的內(nèi)容

有些網(wǎng)頁內(nèi)容是使用AJAX加載的,AJAX一般返回的是JSON,直接對AJAX地址進(jìn)行POST或GET,就能返回JSON數(shù)據(jù)。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
  
"""
獲取AJAX加載的數(shù)據(jù)
有些網(wǎng)頁內(nèi)容使用AJAX加載,只要記得,AJAX一般返回的是JSON,直接對AJAX地址進(jìn)行post或get,就返回JSON數(shù)據(jù)了。
以豆瓣為例:
url = "https://movie.douban.com/j/chart/top_list?type=11&interval_id=100:90&action&start=0&limit=100"
"""
 
# 導(dǎo)入庫
import urllib
import urllib.request
 
url = "https://movie.douban.com/j/chart/top_list?"
# chrome 的 User-Agent,包含在 header里
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
from_data = {
    'type':'11',
    'interval_id':'100:90',
    'action':'',
    'start':'0',
    'limit':'100'
}
data = urllib.parse.urlencode(from_data)
data = data.encode(encoding="utf-8")  # str轉(zhuǎn)bytes
 
request = urllib.request.Request(url, data = data, headers = header)
 
response = urllib.request.urlopen(request)
 
html = response.read().decode(encoding = "utf-8")
 
print(html)

看完上述內(nèi)容,你們對Python爬蟲之GET和POST的區(qū)別有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

分享名稱:Python爬蟲之GET和POST的區(qū)別-創(chuàng)新互聯(lián)
路徑分享:http://www.aaarwkj.com/article6/ihhig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、ChatGPT、軟件開發(fā)、做網(wǎng)站、響應(yīng)式網(wǎng)站自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
国产亚洲精品视频在线| 91中文字幕在线一区| 久久国产精品成人av| 亚洲第一狼人天堂在线| 亚洲av成人噜噜网站| 国产亚洲一区二区三区日韩| 免费在线观看av大全| av中文字幕一二三区| 国产三级黄色片免费看| 97色伦综合在线欧美| 天天做日日干夜夜操| 免费不卡无码毛片观看| 极品人妻视频中文字幕| 日本午夜福利视频在线观看| 亚洲一区二区三区日韩欧美| 青青草日韩视频在线观看| 偷拍丝袜美腿亚洲超碰| 丰满人妻被黑人猛烈进入免费| 国产精品v一区二区三区| 日韩欧美亚洲一区二区三区| 蜜臀av成人精品蜜臀av| 久久东京热日韩精品一区| 九九九热精品在线视频观看| 亚洲国产高清国产拍精品| 肥胖老熟女一区二区三区| 亚洲三区久久婷婷激情| 免费黄片视频大全在线播放| 色噜噜人妻av中文字幕| 国产黄色片网站在线观看| 未满十八禁在线观看免费| 国产精品精品国产一区二区| 人妻天天爽夜夜爽欧美色| 国产不卡视频观看网站| 国产午夜在线影院一区二区| 97精品少妇一区二区三区| 国产精品国产三级区| 懂色粉嫩蜜臀久久一区二区| 中文人妻熟妇乱又伦精品| 日本一区二区最新免费| 久久五月婷婷爱综合亚洲| 国产精品久久综合网|