python爬取簡單網頁


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)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM