requets
requests是python實現的簡單易用的HTTP庫,使用起來比urllib簡潔很多
因為是第三方庫,所以使用前需要cmd安裝
pip install requests
安裝完成后import一下,正常則說明可以開始使用了。
基本用法:
requests.get()用於請求目標網站,類型是一個HTTPresponse類型
import requests response = requests.get('http://www.baidu.com') print(response.status_code) # 打印狀態碼 print(response.url) # 打印請求url print(response.headers) # 打印頭信息 print(response.cookies) # 打印cookie信息 print(response.text) #以文本形式打印網頁源碼 print(response.content) #以字節流形式打印
為你的請求添加頭信息
import requests heads = {} heads['User-Agent'] = 'Mozilla/5.0 ' \ '(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \ '(KHTML, like Gecko) Version/5.1 Safari/534.50' response = requests.get('http://www.baidu.com',headers=headers)
Beautiful Soup
簡單來說,Beautiful Soup是python的一個庫,最主要的功能是從網頁抓取數據。官方解釋如下:
Beautiful Soup提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數據,因為簡單,所以不需要多少代碼就可以寫出一個完整的應用程序。 Beautiful Soup自動將輸入文檔轉換為Unicode編碼,輸出文檔轉換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。 Beautiful Soup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強勁的速度。
Beautiful Soup支持Python標准庫中的HTML解析器,還支持一些第三方的解析器,如果我們不安裝它,則 Python 會使用 Python默認的解析器,lxml 解析器更加強大,速度更快,推薦安裝。
html.parser 文檔容錯能力強
lxml 速度塊,容錯能力強
xml 唯一支持xml的解析器,速度很快
html5lib 速度較慢,容錯能力最強
實現簡單的爬蟲小練習
import requests def getHTMLText(url): try: r = requests.get(url ,timeout = 30) r = r.raise_for_status() r.encoding = "utf-8" return r.text except: return "" url = "http://www.baidu.com" print(getHTMLText(url))
import requests from bs4 import BeautifulSoup url = "http://www.baidu.com" r = requests.get(url) r.encoding = "utf-8" soup = BeautifulSoup(r ,"xml") print(soup.title.arrts) print(soup.title.name) print(soup.title.string)