當前位置:編程學習大全網 - 編程語言 - python3如何利用requests模塊實現爬取頁面內容的實例詳解

python3如何利用requests模塊實現爬取頁面內容的實例詳解

本篇文章主要介紹了python3使用requests模塊爬取頁面內容的實戰演練,具有壹定的參考價值,有興趣的可以了解壹下

1.安裝pip

我的個人桌面系統用的linuxmint,系統默認沒有安裝pip,考慮到後面安裝requests模塊使用pip,所以我這裏第壹步先安裝pip。

$ sudo apt install python-pip安裝成功,查看PIP版本:

$ pip -V2.安裝requests模塊

這裏我是通過pip方式進行安裝:

$ pip install requests

運行import requests,如果沒提示錯誤,那說明已經安裝成功了!

檢驗是否安裝成功

3.安裝beautifulsoup4

Beautiful Soup 是壹個可以從HTML或XML文件中提取數據的Python庫。它能夠通過妳喜歡的轉換器實現慣用的文檔導航,查找、修改文檔的方式。Beautiful Soup會幫妳節省數小時甚至數天的工作時間。

$ sudo apt-get install python3-bs4註:這裏我使用的是python3的安裝方式,如果妳用的是python2,可以使用下面命令安裝。

$ sudo pip install beautifulsoup44.requests模塊淺析

1)發送請求

首先當然是要導入 Requests 模塊:

>>> import requests然後,獲取目標抓取網頁。這裏我以下為例:

>>> r = requests.get('blogs.com/get?key=val。 Requests 允許妳使用 params 關鍵字參數,以壹個字符串字典來提供這些參數。

舉例來說,當我們google搜索“python爬蟲”關鍵詞時,newwindow(新窗口打開)、q及oq(搜索關鍵詞)等參數可以手工組成URL ,那麽妳可以使用如下代碼:

>>> payload = {'newwindow': '1', 'q': 'python爬蟲', 'oq': 'python爬蟲'}

>>> r = requests.get("blogs.com/')

>>> r.encoding

'utf-8'5)獲取響應狀態碼

我們可以檢測響應狀態碼:

>>> r = requests.get('blogs.com/')

>>> r.status_code

2005.案例演示

最近公司剛引入了壹款OA系統,這裏我以其官方說明文檔頁面為例,並且只抓取頁面中文章標題和內容等有用信息。

演示環境

操作系統:linuxmint

python版本:python 3.5.2

使用模塊:requests、beautifulsoup4

代碼如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

_author_ = 'GavinHsueh'

import requests

import bs4

#要抓取的目標頁碼地址

url = 'http://www.ranzhi.org/book/ranzhi/about-ranzhi-4.html'

#抓取頁碼內容,返回響應對象

response = requests.get(url)

#查看響應狀態碼

status_code = response.status_code

#使用BeautifulSoup解析代碼,並鎖定頁碼指定標簽內容

content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml")

element = content.find_all(id='book')

print(status_code)

print(element)程序運行返回爬去結果:

抓取成功

關於爬去結果亂碼問題

其實起初我是直接用的系統默認自帶的python2操作的,但在抓取返回內容的編碼亂碼問題上折騰了老半天,google了多種解決方案都無效。在被python2“整瘋“之後,只好老老實實用python3了。對於python2的爬取頁面內容亂碼問題,歡迎各位前輩們分享經驗,以幫助我等後生少走彎路。

  • 上一篇:導航衛星給我們的日常生活中帶來哪些便利
  • 下一篇:2013大學生數學建模B題編程
  • copyright 2024編程學習大全網