Python爬蟲學習(一)

得到網頁內容

The website is the API

Reqests
自動爬取html頁面,自動提交相關請求
clipboard.pnghtml

Requests: HTTP for Humans™ — Requests 2.21.0 documentation
要學會看官方文檔python

r = requests.get(url)
#這裏經過get方法構造了一個向服務器請求資源的Request對象
#返回的是response對象

clipboard.png

Beautful soup
對web頁面進行解析web

網絡爬蟲,盜亦有道
robots協議中對於網絡爬蟲的相關標準規定
  • 一個通用的爬蟲代碼框架

網絡鏈接並不必定是成立的,對於異常狀況的處理很是重要
clipboard.png服務器

#若是狀態碼不是200,則產生異常
r.raise_for_status()
................................
#通用爬蟲框架
import requests

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協議

clipboard.png

注意get與post的區別
clipboard.png網絡

python數據類型,字典dict
使用{} :的一系列鍵值對app

robots協議
網站告知爬蟲那些頁面能夠抓取,那些不能
網站根目錄下的robot.txt文件框架

爬蟲的header修改post

url = "https://www.amazon.cn/dp/B078FFX8B6"
kv = {'User-agent' : 'Mozilla/5.0'}
r = requests.get(url, headers = kv)
  • 網絡圖片的爬取和存儲
import requests
path = "/Users/apple/Pictures/a.jpg"
url = "http://img0.dili360.com/ga/M01/48/E0/wKgBzFmyTcaACuVKACZ-qAthuNY888.tub.jpg@!rw9"
r = requests.get(url)

with open(path, "wb") as f:
    f.write(r.content)

f.close()
相關文章
相關標籤/搜索