欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python網(wǎng)絡(luò)爬蟲與信息提取——requests庫

系統(tǒng) 2216 0

這是北京理工大學(xué)的課程,附上視頻link:https://www.bilibili.com/video/av9784617/?p=1

?

Requests庫

Requests庫主要方法

Requests庫的7個主要方法
方法 說明
requests.request() 構(gòu)造一個請求,支撐以下各方法的基礎(chǔ)方法
requests.get() 獲取HTML網(wǎng)頁的主要方法,對應(yīng)于HTTP的GET
requests.head() 獲取HTML網(wǎng)頁頭信息的方法,對應(yīng)于HTTP的HEAD
requests.post() 向HTML網(wǎng)頁提交POST請求的方法,對應(yīng)于HTTP的POST
requests.put()

向HTML網(wǎng)頁提交PUT請求的方法,對應(yīng)于HTTP的PUT

requests.patch() 向HTML網(wǎng)頁提交局部修改請求,對應(yīng)于HTTP的PATCH
requests.delete() 向HTML頁面提交刪除請求,對應(yīng)于HTTP的DELETE

?

Response對象的屬性

屬性

說明

r.status_code

HTTP請求的返回狀態(tài),200表示連接成功,404表示失敗

r.text

HTTP響應(yīng)內(nèi)容的字符串形式,即url對應(yīng)的頁面內(nèi)容

r.encoding

從HTTP header中猜測的響應(yīng)內(nèi)容編碼方式,如果header中不存在charset,則認(rèn)為編碼為ISO-8859-1

r.apparent_encoding

從內(nèi)容中分析出的響應(yīng)內(nèi)容編碼方式(備選編碼方式)

r.content

HTTP響應(yīng)內(nèi)容的二進制形式

?

理解Requests庫的異常

異常 說明
requests.Connection Error 網(wǎng)絡(luò)連接錯誤異常,如DNS查詢失敗、拒絕連接等
requests.HTTPError HTTP錯誤異常
requests.URLRequired

URL缺失異常

requests.TooManyRedirects 超過最大重定向次數(shù), 產(chǎn)生重定向異常
requests.ConeetTimeout 連接遠(yuǎn)程服 務(wù)器超時異常
requests.Timeout 請求URL超時,產(chǎn)生超時異常
r.raise_for_status()

如果不是200,產(chǎn)生異常requests.HTTPError

使用r.raise_for_status()檢查異常,使代碼更健壯

?

爬取網(wǎng)頁的通用代碼框架

            
              #通用代碼框架框架
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "error"

if __name__ == "__main__":
    url = "http://www.baidu.com"
    print getHTMLText(url)
            
          
            ?
          

HTTP協(xié)議

HTTP, Hypertext Transfer Protocol,超文本傳輸協(xié)議。HTTP是一個基于“請求與響應(yīng)”模式的、無狀態(tài)的應(yīng)用層協(xié)議。

URL格式htp://host[:port][path]

host:合法的Internet主機域名或P地址

port:端口號,缺省端口為80

path:請求資源的路徑

HTTP URL的理解:

url是通過http協(xié)議存取資源的internet路徑,一個url對應(yīng)一個數(shù)據(jù)資源。

?

?

網(wǎng)絡(luò)爬蟲的限制

◆來源審查:判斷User-Agent進行限制

檢查來訪HTTP協(xié)議頭的User-Agent域, 只響應(yīng)瀏覽器或友好爬蟲的訪問。

◆發(fā)布公告: Robots協(xié)議

告知所有爬蟲網(wǎng)站的爬取策略,要求爬蟲遵守。

?

?

Robots協(xié)議

Robots Exclusion Standard網(wǎng)絡(luò)爬蟲排除標(biāo)準(zhǔn)

作用:網(wǎng)站告知網(wǎng)絡(luò)爬蟲哪些頁面可以抓取,哪些不行。

形式:在網(wǎng)站根目錄下的robots.txt文件。

在爬取某一個網(wǎng)站時,可以“網(wǎng)站”+“robots.txt”查看是否限制爬蟲

?

案例:京東的Robots協(xié)議

https://www.jd.com/robots.txt

Python網(wǎng)絡(luò)爬蟲與信息提取——requests庫_第1張圖片

*代表所有? ? ?

user-agent:HuihuiSpider? ? ?Disallow:/? ? ?-->表明針對user-agent是HuihuiSpider,整個網(wǎng)站都不可以爬取

?

實例1:京東商品頁面的爬取

            
              try:
    r = requests.get("https://item.jd.com/100000177760.html")
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print r.text[:1000]
except:
    print "error"
            
          

?

實例2:亞馬遜商品頁面的爬取

            
              try:
    r = requests.get("https://www.amazon.cn/dp/B01NAS120J/ref=cngwdyfloorv2_recs_0/462-8269923-3092529?pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=desktop-2&pf_rd_r=2RAT2AKB28AT2ZBSCDBE&pf_rd_r=2RAT2AKB28AT2ZBSCDBE&pf_rd_t=36701&pf_rd_p=d2aa3428-dc2b-4cfe-bca6-5e3a33f2342e&pf_rd_p=d2aa3428-dc2b-4cfe-bca6-5e3a33f2342e&pf_rd_i=desktop")
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print r.text[:1000]
except:
    print "error"

#對比傳入headers和不傳入headers的區(qū)別,在第二種可以發(fā)現(xiàn)user-agent改變了
r = requests.get("https://www.amazon.cn/gp/product/B01M8L5Z3Y")
print r.status_code
print r.request.headers

kv = {'user-agent':'Mozilla/5.0'}
r = requests.get("https://www.amazon.cn/gp/product/B01M8L5Z3Y", headers=kv)
print r.request.headers
            
          

?

實例3:百度360搜索關(guān)鍵字提交

            
              #百度關(guān)鍵詞接口
kv = {'wd':'python'}
r = requests.get("http://www.baidu.com/s", params=kv)
print r.request.url
print len(r.text)

#360關(guān)鍵詞接口
kv = {'q':'python'}
r = requests.get("http://www.so.com/s", params=kv)
print r.request.url
print len(r.text)
            
          

?

實例4:網(wǎng)絡(luò)圖片的爬取和存儲

            
              url = "https://www.nationalgeographic.com/animals/2019/04/polar-bears-algae-sea-ice-warming/#/01-polar-bears-algae-nationalgeographic_675501.jpg"
root = './pics/'
path = root + url.split('/')[-1]
try:
    if not os.path.exists(root):
        os.mkdir(root)
    if not os.path.exists(path):
        r = requests.get(url)
        with open(path, 'wb') as f:
            f.write(r.content)
            f.close()
            print '文件保存成功'
    else:
        print '文件已存在'
except:
    print '爬取失敗'
            
          

?

實例5:ip地址歸屬地的自動查詢

            
              url = 'http://m.ip138.com/ip.asp?ip='
try:
    r = requests.get(url + '202.204.80.112')
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print r.text[-500:]
except:
    print '爬取失敗'
            
          

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩视频 | 亚洲天堂中文网 | 国产精品国产三级国产专区5o | 欧美视频a | 国产成人+综合亚洲+天堂 | 日韩在线免费视频 | 精品久久久久久国产 | 欧美午夜a级限制福利片 | 97在线 | 亚洲 | 五月婷婷天堂 | 91精品国产综合久久久久久 | 欧美成人一级片 | 日韩在线国产精品 | 日本一级特黄a大片在线 | 激情网站免费观看 | 日本三级黄色片网站 | 蜜桃久久 | 久久久精品日本 | 日本久久久久久 | 在线中文天堂 | 午夜18禁A片兔费看 四虎影视在线看免费完整版 | 亚洲综合精品一区二区三区中文 | 久久色伦理资源站 | 亚洲视频不卡 | 中文字幕在线播放 | 婷婷六月综合 | 久久久久亚洲精品中文字幕 | 亚洲欧美国产精品久久 | 日本不卡一区二区三区在线观看 | 日韩在线视频一区 | 国产色在线 | 亚洲综合精品一区 | 伊人久久大杳蕉综合大象 | 免费黄色片网站 | 伦一区二区三区中文字幕v亚洲 | 日本免费一区二区三区视频 | 涩涩屋av| 国产日产亚洲欧美综合另类 | 亚洲精品久久久久影院 | 69性影院在线观看国产精品87 | 中文字幕在线免费视频 |